如何找到一个元素,不知道它嵌套有多深使用Linq到XML
本文关键字:嵌套 XML Linq 何找 元素 一个 不知道 | 更新日期: 2023-09-27 18:14:14
我有一个像这样的XML文档:
<BrowseNodes>
<BrowseNode>
<BrowseNodeId>4075981</BrowseNodeId>
<Name>Nutrition Bars</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>4075971</BrowseNodeId>
<Name>Nutrition Bars & Drinks</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>3764441</BrowseNodeId>
<Name>Diet & Nutrition</Name>
<Ancestors>
<BrowseNode>
<BrowseNodeId>3760931</BrowseNodeId>
<Name>Products</Name>
<IsCategoryRoot>1</IsCategoryRoot>
<Ancestors>
<BrowseNode>
<BrowseNodeId>3760901</BrowseNodeId>
<Name>Health & Personal Care</Name>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</Ancestors>
</BrowseNode>
</BrowseNodes>
我想用XLINQ查询找到目录根。如果什么都没有,那是怎么做到的到底有多少祖先?
你应该使用Descendants属性。
var node =
XElement.Parse(xmlString)
.Descendants()
.Where(xe => xe.Element("IsCategoryRoot") != null && xe.Element("IsCategoryRoot").Value == "1");