<Document>
  <A>
    <B>
      <C></C>
    </B>
  </A>
  <E>
   <F>
    <C></C>
   </F>
   <G>
    <C></C>
  </G>
 </E>
</Document>

如果我将上述XML加载到XmlDocument中,并使用XPath查询//C在A上执行SelectSingleNode

XmlNode oNode = oDocument.SelectSingleNode(“E”);
XmlNodeList oNodeList = oNode.SelectNodes(“//C”);

为什么当我期望发生什么时,它会从B下返回节点,为什么它只会从E下返回节点?

有道理?

编辑:我将如何使其仅从该节点开始返回?

最佳答案

简单来说://开头表示与所选节点在同一文档中的“任何级别”。

spec:

  • //para选择文档根目录的所有para后代,并因此选择同一文档中的所有para元素作为上下文节点
  • .//para选择上下文节点
  • 的para元素后代

    关于c# - .NET中的XPath SelectNodes,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/558870/

    10-11 17:09