1

我正在使用 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 大。

4

1 回答 1

1

不,XDocument不只是转发。你在想XStreamingElement吗?

我相信父级作为字段存储为 的一部分XObject,因此递归获取它很便宜。

于 2009-03-20T09:53:27.367 回答