使用XmlNode(c#)进行相对XPath选择

max*_*axp 2 c# xpath

假设我有以下xml文件:

<a>
  <b>
    <c></c>
  </b>
  <b>
    <c></c>
  </b>
</a>

var nodes = doc.SelectNodes("/a/b");
Run Code Online (Sandbox Code Playgroud)

将选择两个b节点.

然后我循环这两个节点,例如:

 foreach (XmlNode node in nodes) { }
Run Code Online (Sandbox Code Playgroud)

但是,当我调用node.SelectNodes("/a/b/c");它仍然返回两个值而不仅仅是后代.是否可以选择仅从当前下降的节点node

Aak*_*shM 8

foreach循环中,您已经知道它node/a/b原始文档中的一个 - 所以为了让它的 c子项只需使用相对 xpath:

node.SelectNodes("c")
Run Code Online (Sandbox Code Playgroud)