我正在使用C#和LINQ来遍历我的XDocument。
假设我有这样的XML:
<Root>
<Element ID="1">
<Element ID="2">
<Element ID="3" />
...
</Element>
<Element ID="50">
...
</Element>
</Element>
<Element ID="x">
...
</Element>
</Root>
现在让我说我有ID 3,并设法找到具有该ID的元素。此时,我想找到顶级父节点的ID(它的父节点是Root下面的一个级别)。在这种情况下,我想找到ID为1的元素。我可以这样做:
myElement.Parent.Parent
但我不知道它可能有多少级别 - 所以我可能需要递归。但是,我记得XDocument正在向前阅读。找到父母有多贵 - 递归?这样做的最佳方式是什么?
我的XML文件可能高达500k。
答案 0 :(得分:1)
不,XDocument
不是前瞻性的。你在想XStreamingElement
吗?
我相信父作为XObject
的一部分存储为字段,因此递归获取它是便宜的。