Frage : Problem mit der Erzeugung von XML using LINQ und C#

Ich versuche, eine XML Akte using LINQ mit C# in einer ASP.NET Anwendung

The Datenquelle zu erzeugen bin ein SQLDataReader, das Daten d=from Datenbank…

The Problem ist extrahiert, dass das XML, das ich versuche, zu erzeugen, nicht im Format ist, das, ich bin, nachdem…

The Format ich mein XML innen sein wünsche, in der Akte „CorrectFormat.xml "

However angebracht ist ich das XML in einem etwas anderen das Format (angebracht in der Akte „WrongFormat.xml“)

The Code I '' m mit, das xml zu erzeugen bin in den Code section

The Daten erhalte, die im SQLdatareader gespeichert werden, das von zurückgebracht wird Datenbank ist, wie folgt

TYPE Identifikation VALUE
===== === =========
trial 1 Lungenflügel Cancer
diseases 1 Diabetes
diseases 3 Osteoporosis
diseases 5 Cancer
ethnicity 1 White
ethnicity 2 gemischtes race
ethnicity 3 Indian


Please mir helfen, die Daten in XML im korrekten format

Thanks im Voraus umzuwandeln!!!
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
var Kriterien = da.getTrialCriteria (trialID);
                Versuch
                {
                    var xdoc = neues XDocument (neues XDeclaration („1.0“, „utf-8“, „ja“));
                    var xroot = neues XElement („Versuche“);
                    xdoc. Hinzufügen (xroot);
                    während (Kriterien. Gelesen ())
                    {
                        #region Schalteraussage

                        schalten ((Schnur) Kriterien [„Art“])
                        {
                            „Versuch“ umkleiden:
                                {
                                    var xElement = neues XElement („Versuch“,
                                                                neues XAttribute („Identifikation“, Kriterien [1]),
                                                                neues XElement („Name“, Kriterien [2])
                                        );
                                    xroot. Hinzufügen (xElement);
                                    Bruch;
                                }
                            Fall „Krankheiten“:
                                {
                                    var xsubroot = neues XElement („Krankheiten“);
                                    xdoc. Hinzufügen (xsubroot);
                                    var xElement = neues XElement („Krankheit“,
                                                                neues XAttribute („Identifikation“, Kriterien [1]),
                                                                neues XElement („Name“, Kriterien [2])
                                        );
                                    xroot. Hinzufügen (xElement);
                                    Bruch;
                                }
                            Fall „Ethnie“:
                                {
                                    var xsubroot = neues XElement („Ethnien“);
                                    xdoc. Hinzufügen (xsubroot);
                                    var xElement = neues XElement („Ethnie“,
                                                                neues XAttribute („Identifikation“, Kriterien [1]),
                                                                neues XElement („Name“, Kriterien [2])
                                        );
                                    xroot. Hinzufügen (xElement);
                                    Bruch;
                                }
                            Fall „Blutgruppe“:
                                {
                                    var xsubroot = neues XElement („Blutgruppen“);
                                    xdoc. Hinzufügen (xsubroot);
                                    var xElement = neues XElement („Blutgruppe“,
                                                                neues XAttribute („Identifikation“, Kriterien [1]),
                                                                neues XElement („Name“, Kriterien [2])
                                        );
                                    xroot. Hinzufügen (xElement);
                                    Bruch;
                                }
                        }

                        #endregion
                    }
                    xdoc. Speichern (@ " c: /WrongFormat.xml ");
                }
Attachments:
Dieses ist das korrekte Format des XML, das ich es in
wünsche
Dieses ist das falsche Format von XML I get

Antwort : Problem mit der Erzeugung von XML using LINQ und C#

Hallo 2ooth;

Ich fand dass dieses. Form (), veranlaßte Aufzeichnungen nicht zurückgebracht zu werden. So las ich gerade den Datenleser direkt und füllte eine Datenerfassung. Dieses sollte für Sie arbeiten.

Fernando
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
private Liste criterias = neue Liste ();

private Lücke button1_Click (Gegenstandabsender, EventArgs e)
{
    // erhalten den Leser von der getTrialCriteria Funktion
    SqlDataReader Dr. = getTrialCriteria (trialID);
    // lesen die Daten vom Leser und verursachen einen Listen gegenstand für jede Reihe
    während (Dr. Gelesen ())
    {
        // der Index des Dr. muss die Spalte zusammenbringen, die vom Datenleser zurückgebracht wird 
        // sowie das erhalten datatype muss die zurückgebrachte Art zusammenbringen
        Datendaten = neue Daten () {ART = dr.GetString (0), Identifikation = dr.GetString (1), Name = dr.GetString (2)};
        // fügen das neue Datenobjekt der Ansammlung hinzu
        criterias. Hinzufügen (Daten);
    }

    var-Frage = (von c in den criterias
                 c durch c.City in groupCity gruppieren
                 groupCity) .ToList vorwählen ();

    // verursachen das XDocument und Wurzelelement
    var xdoc = neues XDocument (neues XDeclaration („1.0“, „utf-8“, „ja“));
    var xroot = neues XElement („Versuche“);
    xdoc. Hinzufügen (xroot);
    
    // stellen das Versuchselement und sein Kind her
    Datenversuch = -frage. (T => t.Key.ToUpper () == „VERSUCH“) .FirstOrDefault finden ();
    XElement xTrial = neues XElement (trial.TYPE, 
        neues XAttribute („Identifikation“, trial.ID),
        neues XElement („Name“, trial.name)
        );                
    
    // stellen das Krankheitelement und aller seiner Kinder her  
    XElement Krankheit = neues XElement („Krankheiten“);
    foreach (Daten DIS in der Frage. Finden (d => d.Key.ToUpper () == „KRANKHEITEN“))
    {
        XElement d = neues XElement („Krankheit“,
            neues XAttribute („Identifikation“, dis.ID),
            neues XElement („Name“, dis.name));
        Krankheit. Hinzufügen (d);
    }
    // fügen die Krankheit dem xTrial hinzu
    xTrial.Add (Krankheit);
    
    // stellen das Ethnieelement und aller seiner Kinder her  
    XElement Ethnien = neues XElement („Ethnien“);
    foreach (Daten-Ethnie in der Frage. Finden (d => d.Key.ToUpper () == „ETHNIE“))
    {
        XElement eth = neues XElement („Ethnie“,
            neues XAttribute („Identifikation“, ethnicity.ID),
            neues XElement („Name“, ethnicity.name));
        Ethnien. Hinzufügen (eth);
    }
    // fügen die Ethnien dem Versuch hinzu
    xTrial.Add (Ethnien);
    // fügen alles der Wurzel hinzu
    xroot. Hinzufügen (xTrial);
    
    xdoc. Speichern (@ " CorrectFormat.xml ");
}
Weitere Lösungen  
 
programming4us programming4us