【问题标题】:How to get specific element in a XDcoument如何在 XDcoument 中获取特定元素
【发布时间】:2020-03-10 16:51:54
【问题描述】:

我有一个这样的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# xml linq-to-xml


    【解决方案1】:

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

    如果您知道只有一个带有您想要的XName 的子节点,您可以使用.Element(XName) 方法来获取该元素。

    【讨论】:

      【解决方案2】:

      试试这样:

      var doc = XDocument.Parse("<A><B><C>ABC</C></B><C>AC</C></A>");
      var resultsAC = doc.Element("A").Element("C");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多