2009-07-20 110 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);