Pytanie : problem z XML using LINQ i C#

I próbować XML kartoteka using LINQ z C# w ASP.NET podaniowy

The dane źródło być SQLDataReader che wydobywać dane d=from baza danych…

The problem być że the XML który i próbować być w the format I być po tym jak…

The format I chcieć mój XML wewnątrz dołączać w the kartoteka "CorrectFormat.xml "

However i dostawać the XML w trochę inny format (dołączać w the kartoteka "WrongFormat.xml")

The kod i '' m używać the xml być w the kod section

The dane przechować w the SQLdatareader wracać od the baza danych być jako follows

TYPE ID VALUE
===== === =========
trial (1) Płuco Cancer
diseases (1) Diabetes
diseases 3 Osteoporosis
diseases 5 Cancer
ethnicity (1) White
ethnicity 2 Mieszać race
ethnicity 3 Indian


Please pomagać the dane w XML w the poprawny format

Thanks w Postęp!!!
(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 kryterium = da.getTrialCriteria (trialID);
                próba
                {
                    var xdoc = nowy XDocument (nowy XDeclaration ("1.0", "utf-8", "tak"));
                    var xroot = nowy XElement ("próba");
                    xdoc. Dodawać (xroot);
                    podczas gdy (kryterium. Czytać ())
                    {
                        #region przełącznikowy oświadczenie

                        wyłaczać ((smyczkowy) kryterium ["typ"])
                        {
                            pakować "próba":
                                {
                                    var xElement = nowy XElement ("próba",
                                                                nowy XAttribute ("ID", kryterium [(1)]),
                                                                nowy XElement ("imię", kryterium [2])
                                        );
                                    xroot. Dodawać (xElement);
                                    przerwa;
                                }
                            skrzynka "choroba":
                                {
                                    var xsubroot = nowy XElement ("choroba");
                                    xdoc. Dodawać (xsubroot);
                                    var xElement = nowy XElement ("choroba",
                                                                nowy XAttribute ("ID", kryterium [(1)]),
                                                                nowy XElement ("imię", kryterium [2])
                                        );
                                    xroot. Dodawać (xElement);
                                    przerwa;
                                }
                            skrzynka "pochodzenie etniczne":
                                {
                                    var xsubroot = nowy XElement ("pochodzenie etniczne");
                                    xdoc. Dodawać (xsubroot);
                                    var xElement = nowy XElement ("pochodzenie etniczne",
                                                                nowy XAttribute ("ID", kryterium [(1)]),
                                                                nowy XElement ("imię", kryterium [2])
                                        );
                                    xroot. Dodawać (xElement);
                                    przerwa;
                                }
                            skrzynka "bloodGroup":
                                {
                                    var xsubroot = nowy XElement ("bloodGroups");
                                    xdoc. Dodawać (xsubroot);
                                    var xElement = nowy XElement ("bloodGroup",
                                                                nowy XAttribute ("ID", kryterium [(1)]),
                                                                nowy XElement ("imię", kryterium [2])
                                        );
                                    xroot. Dodawać (xElement);
                                    przerwa;
                                }
                        }

                        #endregion
                    }
                    xdoc. Save (@ " c: /WrongFormat.xml ");
                }
Attachments:
Chcieć być the poprawny format the XML I chcieć ono in
Get
być the mylny format XML I get

Odpowiedź : problem z XML using LINQ i C#

Cześć 2ooth;

I znajdować że to. Obsada (), powodować rejestr wracać. W Ten Sposób I właśnie czytać the dane czytelnik bezpośrednio i wypełniać kolekcja Dane. Ty musieć dla ty.

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:
intymny Lista criterias = nowy Lista ();

intymny pustka button1_Click (przedmiot nadawca, EventArgs e)
{
    // Dostawać the czytelnik od the getTrialCriteria funkcja
    SqlDataReader dr = getTrialCriteria (trialID);
    // Czytać the dane od the czytelnik i tworzyć Lista przedmiot dla rząd rząd
    podczas gdy (dr. Czytać ())
    {
        // The wskaźnik the dr musieć the kolumna wracać od the dane czytelnik 
        // as well as the Dostawać datatype musieć the wracać typ
        Dane dane = nowy Dane () {TYP = dr.GetString ((0)), ID = dr.GetString (1), imię = dr.GetString (2)};
        // Dodawać the nowy Dane przedmiot the kolekcja
        criterias. Dodawać (dane);
    }

    var zapytanie = (od c w criterias
                 grupowy c c.City w groupCity
                 wybrany groupCity) .ToList ();

    // Tworzyć the XDocument i korzeniowy element
    var xdoc = nowy XDocument (nowy XDeclaration ("1.0", "utf-8", "tak"));
    var xroot = nowy XElement ("próba");
    xdoc. Dodawać (xroot);
    
    // Tworzyć the próba element i swój dziecko
    dane próba = zapytanie. Znajdować (t => t.Key.ToUpper () == "PRÓBA") .FirstOrDefault ();
    XElement xTrial = nowy XElement (trial.TYPE, 
        nowy XAttribute ("ID", trial.ID),
        nowy XElement ("imię", trial.name)
        );                
    
    // Tworzyć the choroba element i wszystkie swój children  
    XElement choroba = nowy XElement ("choroba");
    foreach (dane dis w zapytanie. Znajdować (D => d.Key.ToUpper () == "CHOROBA"))
    {
        XElement D = nowy XElement ("choroba",
            nowy XAttribute ("ID", dis.ID),
            nowy XElement ("imię", dis.name));
        choroba. Dodawać (D);
    }
    // Dodawać the choroba the xTrial
    xTrial.Add (choroba);
    
    // Tworzyć the pochodzenie etniczne element i wszystkie swój children  
    XElement pochodzenie etniczne = nowy XElement ("pochodzenie etniczne");
    foreach (dane pochodzenie etniczne w zapytanie. Znajdować (D => d.Key.ToUpper () == "POCHODZENIE ETNICZNE"))
    {
        XElement eth = nowy XElement ("pochodzenie etniczne",
            nowy XAttribute ("ID", ethnicity.ID),
            nowy XElement ("imię", ethnicity.name));
        pochodzenie etniczne. Dodawać (eth);
    }
    // Dodawać the pochodzenie etniczne the próba
    xTrial.Add (pochodzenie etniczne);
    // Dodawać korzeń the korzeń
    xroot. Dodawać (xTrial);
    
    xdoc. Save (@ " CorrectFormat.xml ");
}
Inne rozwiązania  
 
programming4us programming4us