2009-07-20 7 views
3

Disons que j'ai ce xml:utilisant LINQ to XML pour interroger xml intérieur des nœuds enfants

<items> 
    <item name="thumb"> 
    <downloadStream>test1</downloadStream> 
    <downloadStream>test2</downloadStream> 
    <downloadStream>test3</downloadStream> 
    </item> 
    <item name="photo"> 
    <downloadStream>test5</downloadStream> 
    <downloadStream>test6</downloadStream> 
    <downloadStream>test7</downloadStream> 
    </item> 
</items> 

Je suis en train d'écrire un LINQ à la déclaration XML qui me retourne:

{"test5", "test6", "test7"}

En d'autres termes, il me renvoie le fichier XML interne pour chaque nœud "downloadStream" où le nœud parent a un attribut de (name = "photo").

Comment faire?

Répondre

8

Quelque chose comme ceci:

  var rootElement = XElement.Parse(xml); 
      var results = rootElement. 
       .Elements() 
       .Where(e => e.Attribute("name") == "photo") 
       .SelectMany(e => e.Elements) 
       .Select(e => e.Value);