如何获取 XDocument 中的特定元素
How to get specific element in a XDcoument
我有一个 xml 这样的结构
<A>
<B>
<C></C>
</B>
<C></C>
</A>
我只想获取节点 (A > C)。我尝试使用 Linq-to-Xml
XDocument.Descendants(namespace + "A").Descendants(namespace + "C")
但结果会 return 2 个节点 (A > C) 和 (A > B > C) 而不是我想要的那个唯一的节点 (A > C)。
我怎样才能做到这一点 ?
谢谢
.Descendants
会得到所有个匹配XName
节点的后代,换句话说,它遍历树,寻找所有节点匹配 XName
。如果您正在寻找节点的 直接子节点 (在您的情况下为根节点),请尝试遍历其 .Elements
并获取您想要的节点 - 这些将只能是直系子女。
如果您知道只有一个子节点具有您想要的 XName
,您可以使用 .Element(XName)
方法来获取该元素。
这样试试:
var doc = XDocument.Parse("<A><B><C>ABC</C></B><C>AC</C></A>");
var resultsAC = doc.Element("A").Element("C");
我有一个 xml 这样的结构
<A>
<B>
<C></C>
</B>
<C></C>
</A>
我只想获取节点 (A > C)。我尝试使用 Linq-to-Xml
XDocument.Descendants(namespace + "A").Descendants(namespace + "C")
但结果会 return 2 个节点 (A > C) 和 (A > B > C) 而不是我想要的那个唯一的节点 (A > C)。 我怎样才能做到这一点 ? 谢谢
.Descendants
会得到所有个匹配XName
节点的后代,换句话说,它遍历树,寻找所有节点匹配 XName
。如果您正在寻找节点的 直接子节点 (在您的情况下为根节点),请尝试遍历其 .Elements
并获取您想要的节点 - 这些将只能是直系子女。
如果您知道只有一个子节点具有您想要的 XName
,您可以使用 .Element(XName)
方法来获取该元素。
这样试试:
var doc = XDocument.Parse("<A><B><C>ABC</C></B><C>AC</C></A>");
var resultsAC = doc.Element("A").Element("C");