2009-07-20 111 views
3

比方說,我有這樣的XML:使用LINQ to XML查詢子節點的內部XML

<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> 

我想寫一個LINQ到XML語句返回我:

{「test5」,「test6」,「test7」}

換句話說,它返回每個「downloadStream」節點的內部xml,其中父節點的屬性爲(name =「photo」)。

我該怎麼做?

回答

8

事情是這樣的:

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