使用 LINQ 在 xml 文档中查找节点,其中不同级别的节点具有相同的名称
本文关键字:节点 xml LINQ 文档 查找 使用 | 更新日期: 2023-09-27 18:20:37
<category>
<category>
<category>
</category>
</category>
</category>
<category>
<category>
<category>
</category>
</category>
</category>
我有一个如上所述的xml段,其中许多子节点与父节点具有相同的名称,重复多个级别。使用 LINQ to XML 我想查询1(只有顶级节点和2(所有二级节点及其后代。通常我可以使用.后代("类别"(或 .Element(( 如果节点名称是唯一的,但我找不到任何在 XML 层次结构中指定级别/深度的方法。
1(只是顶级节点
Elements
方法仅采用直接位于当前节点下的元素,因此使用它来获取category
元素的顶级:
var topCategories = source.Elements("category");
2(所有二级节点及其后代
结合Elements
和Descendants
来获得它:
var topCategories = source.Elements("category").Descendants("category");
在这两个示例中,source
是作为category
部分父级的XElement
。 例如 categories
在以下文档中:
<root>
<elements>
<element />
<element />
</elements>
<categories>
<category>
<category>
<category>
<category />
</category>
</category>
</category>
<category>
<category>
<category />
</category>
</category>
</categories>
</root>