Vraag : probleem met het produceren van XML gebruikend LINQ en C#

Ik probeer om een Xml- dossier te produceren gebruikend LINQ met C# in een ASP.NET toepassings
The- gegevensbron/>

The van uittrekselsgegevens d=from is dat XML die ik probeer om te produceren niet in het formaat is ik na… formaat ben

The ik mijn XML wil zijn in verbonden ben in het dossier „CorrectFormat.xml "

However ik XML in een lichtjes verschillende formaat (in bijlage in het dossier „WrongFormat.xml“)

The code i '' m gebruikend die xml te produceren ben in de code section

The- gegevens in SQLdatareader worden opgeslagen is teruggekeerd van krijg het gegevensbestand is als volgt

TYPE identiteitskaart VALUE
===== === =========
trial 1 Long Cancer
diseases 1 Diabetes
diseases 3 Osteoporosis
diseases 5 Cancer
ethnicity 1 White
ethnicity 2 Gemengde race
ethnicity 3/>Please/>


Thanks vooraf omzetten!!!
" codeBody "
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:
36:
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 = da.getTrialCriteria (trialID);
                probeer
                {
                    var xdoc = nieuwe XDocument (nieuwe XDeclaration („1.0“, „utf-8“, „ja“));
                    var xroot = nieuwe XElement („proeven“);
                    xdoc. Voeg toe (xroot);
                    terwijl (criteria. Lees ())
                    {
                        de verklaring van de #regionschakelaar

                        schakelaar ((koord) criteria [„type“])
                        {
                            geval „proef“:
                                {
                                    var xElement = nieuwe XElement („proef“,
                                                                nieuwe XAttribute („identiteitskaart“, criteria [1]),
                                                                nieuwe XElement („naam“, criteria [2])
                                        );
                                    xroot. Voeg toe (xElement);
                                    onderbreking;
                                }
                            geval „ziekten“:
                                {
                                    var xsubroot = nieuwe XElement („ziekten“);
                                    xdoc. Voeg toe (xsubroot);
                                    var xElement = nieuwe XElement („ziekte“,
                                                                nieuwe XAttribute („identiteitskaart“, criteria [1]),
                                                                nieuwe XElement („naam“, criteria [2])
                                        );
                                    xroot. Voeg toe (xElement);
                                    onderbreking;
                                }
                            geval het „behoren tot een bepaald ras“:
                                {
                                    var xsubroot = nieuwe XElement (de „behoren tot een bepaald ras“);
                                    xdoc. Voeg toe (xsubroot);
                                    var xElement = nieuwe XElement (het „behoren tot een bepaald ras“,
                                                                nieuwe XAttribute („identiteitskaart“, criteria [1]),
                                                                nieuwe XElement („naam“, criteria [2])
                                        );
                                    xroot. Voeg toe (xElement);
                                    onderbreking;
                                }
                            geval „bloedgroep“:
                                {
                                    var xsubroot = nieuwe XElement („bloedgroepen“);
                                    xdoc. Voeg toe (xsubroot);
                                    var xElement = nieuwe XElement („bloedgroep“,
                                                                nieuwe XAttribute („identiteitskaart“, criteria [1]),
                                                                nieuwe XElement („naam“, criteria [2])
                                        );
                                    xroot. Voeg toe (xElement);
                                    onderbreking;
                                }
                        }

                        #endregion
                    }
                    xdoc. Sparen (@ " c: /WrongFormat.xml ");
                }
Attachments:
van
Dit is het correcte formaat van XML ik het in
wil
van
Dit is het verkeerde formaat van XML I get

Antwoord : probleem met het produceren van XML gebruikend LINQ en C#

Hallo 2ooth;

Ik vond dat dit. Gegoten (), veroorzaakte dat de verslagen niet is teruggekeerd. Zo las ik direct enkel de gegevenslezer en vulde een verzameling van Gegevens. Dit zou voor u moeten werken.

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:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
privé criterias van de Lijst = nieuwe Lijst ();

privé nietige button1_Click (objecten afzender, EventArgs e)
{
    // krijgt de lezer van de getTrialCriteriafunctie
    Dr. van SqlDataReader = getTrialCriteria (trialID);
    // leest de gegevens van de lezer en leidt tot een voorwerp van de Lijst voor elke rij
    terwijl (Dr. Lees ())
    {
        // de index van Dr. de kolom moet aanpassen van de gegevenslezer die is teruggekeerd 
        // evenals Get datatype moeten het teruggekeerde type aanpassen
        De gegevens van gegevens = nieuwe Gegevens () {TYPE = dr.GetString (0), identiteitskaart = dr.GetString (1), naam = dr.GetString (2)};
        // voegt het nieuwe Gegevensobject aan de inzameling toe
        criterias. Voeg toe (gegevens);
    }

    var vraag = (van c in criterias
                 groep c door c.City in groupCity
                 selecteer groupCity) .ToList ();

    // leidt tot XDocument en tot het wortelelement
    var xdoc = nieuwe XDocument (nieuwe XDeclaration („1.0“, „utf-8“, „ja“));
    var xroot = nieuwe XElement („proeven“);
    xdoc. Voeg toe (xroot);
    
    // leidt tot het proevenelement en tot zijn kind
    gegevens proef = vraag. Vind (t => t.Key.ToUpper () == „PROEF“) .FirstOrDefault ();
    xTrial XElement = nieuwe XElement (trial.TYPE, 
        nieuwe XAttribute („identiteitskaart“, trial.ID),
        nieuwe XElement („naam“, trial.name)
        );                
    
    // leidt tot het ziektenelement en tot al zijn kinderen  
    De ziekte van XElement = nieuwe XElement („ziekten“);
    foreach (gegevens dis in vraag. Vind (D => d.Key.ToUpper () == „ZIEKTEN“))
    {
        XElement D = nieuwe XElement („ziekte“,
            nieuwe XAttribute („identiteitskaart“, dis.ID),
            nieuwe XElement („naam“, dis.name));
        ziekte. Voeg toe (D);
    }
    // voegt de ziekte aan xTrial toe
    xTrial.Add (ziekte);
    
    // leidt tot het de behoren tot een bepaald raselement en tot al zijn kinderen  
    De behoren tot een bepaald ras van XElement = nieuwe XElement (de „behoren tot een bepaald ras“);
    foreach (het gegevensbehoren tot een bepaald ras in vraag. Vind (D => d.Key.ToUpper () == het „BEHOREN TOT EEN BEPAALD RAS“))
    {
        XElement eth = nieuwe XElement (het „behoren tot een bepaald ras“,
            nieuwe XAttribute („identiteitskaart“, ethnicity.ID),
            nieuwe XElement („naam“, ethnicity.name));
        de behoren tot een bepaald ras. Voeg toe (eth);
    }
    // voegt de behoren tot een bepaald ras aan de proef toe
    xTrial.Add (de behoren tot een bepaald ras);
    // voegt alles aan de wortel toe
    xroot. Voeg toe (xTrial);
    
    xdoc. Sparen (@ " CorrectFormat.xml ");
}
Andere oplossingen  
 
programming4us programming4us