xml la linq interogare scrie

Am un obiect xDocument și care este încărcat printr-un fișier xml care conține datele de mai jos.


   
This is xml2linq -- Part1.
   From me
   to stackoverflow
   ohh wow


   
This is xml2linq -- Part2 .
   to stackoverflow
   ohh wow


   
This is xml2linq -- Part3 .
   From me
   to stackoverflow


  ohh nice


   c-sharp
   Inheritance

Vreau să scriu interogarea linq pe xDocument și să obțină rezultatul de mai jos dat

 note(header,from,to,message)
 description(item1,language)

** Descriere. Vreau lista distinctă de nume de noduri care sunt urmate de nodul Note. Dar nu vreau să scriu o lungă foreach sau pentru bucla. Dar vreau să scriu o simplă interogare linq pe obiectul xDocument.

Ajutați-mă să obțin această ieșire ...

0
Veți accepta un răspuns?
adăugat autor caesay, sursa
Acesta este un șir simplu
adăugat autor Hiren Visavadiya, sursa
Ce vrei sa spui prin "primeste rezultatul dat mai jos"? O secvență de obiecte Note sau șiruri reale?
adăugat autor Jon Skeet, sursa
Dacă aveți o întrebare nouă , adresați o întrebare nouă , nu modificați complet întrebarea existentă.
adăugat autor casperOne, sursa

2 răspunsuri

Fără ancodul , de la, până la, .. etc.

XDocument xDoc = XDocument.Load(....);

List< List> > list =
    xDoc.Descendants("note")
    .Select(note => note.Elements()
                        .Select(e => new KeyValuePair(e.Name.LocalName, e.Value))
                        .ToList())
    .ToList();
0
adăugat
var doc = XDocument.Parse(" -- your xml here -- ");
var notes = from note in doc.Elements("note")
            select new {
                Header = (string)note.Element("header"),
                From = (string)note.Element("from"),
                To = (string)note.Element("to"),
                Message = (string)note.Element("message"),
            };

Aceasta vă va oferi o listă de obiecte anonime cu 4 proprietăți: Header, From, To și Message.

0
adăugat
Nu face o verificare null. Și a cerut să întoarcă șirul.
adăugat autor caesay, sursa
Aici xml-ul meu conține multe noduri diferite așteaptă doar Nota. Deci, eu cant hardcode-l cu antet, de la, la numele elementului etc în interogare.
adăugat autor Hiren Visavadiya, sursa