首页 > 解决方案 > 如何在 XDcoument 中获取特定元素

问题描述

我有一个这样的xml结构

<A>
  <B>
     <C></C>
  </B>
  <C></C>
</A>

我只想获取节点(A> C)。我尝试使用 Linq-to-Xml

XDocument.Descendants(namespace + "A").Descendants(namespace + "C")

但结果将返回 2 个节点 (A > C) 和 (A > B > C),而不是我想要的唯一节点 (A > C)。我怎样才能做到这一点 ?谢谢

标签: c#xmllinq-to-xml

解决方案


.Descendants将获得与 匹配的节点的所有XName后代,换句话说,它遍历树,寻找与 匹配的所有节点XName。如果您正在寻找一个节点的直接子节点(在您的情况下是根节点),请尝试迭代它.Elements并获取您想要的那些 - 这些只会是直接子节点。

如果您知道只有一个具有所需的子节点,则XName可以使用该.Element(XName)方法仅获取该元素。


推荐阅读