使用LINQ选择具有不同名称的后代节点

时间:2013-03-02 00:16:12

标签: xml linq nodes xmlnode descendant

我有这样的XML:

<root>
  <data>
   <_0>
    <value1></value1>
    <value2></value2>
   </_0>
   <_1>
    <value1></value1>
    <value2></value2>
   </_1>
 </data>
</root>

我想获取数据节点的所有后代并且当前正在使用:

var descendants = from descendant in xdoc.Descendants("data")
                        select descendant;

但是返回的只是数据元素之间包含的所有文本。如何获得以_0,_1,_2等不同名称开头的所有后代的列表。它们将始终是数据节点的直接后代,因此必须有一种方法来获取这些。任何帮助都将非常感谢,因为我没有使用LINQ。感谢

1 个答案:

答案 0 :(得分:0)

你可以使用Elements()来获取孩子。像这样,可能是:

var descendants = from descendant in xdoc.Descendants("data")
                        select descendant.Elements();

尽管使用lambda synta而不是查询 - 理解语法可能更简洁:

var descendants = xdoc.Descendants("data").Elements();