XPath仅选择一定数量的级别

Psy*_*nic 1 xpath

如果我有这样的xml结构

<root>
  <sub>
    <node />
    <node />
  </sub>
    <sub>
      <node />
    <sub>
  <sub>
    <sub>
      <node />
    </sub>
  </sub>
  <sub>
    <sub>
      <sub>
        <node />
      </sub>
      <node />
    </sub>
  </sub>
  <node />
  <node />
</root>

是否有一个xpath语法只能选择前三个节点级别?

所以它会收集

<root>
  <sub>
    <node />
    <node />
  </sub>
    <sub />
  <sub>
    <sub />
  </sub>
  <sub>
    <sub />
  </sub>
  <node />
  <node />
</root>

UPDATE

只是为了解释我正在做什么,我有一个asp:treeview,我绑定到一个asp:xmldatasource,我希望树视图只能深入三个节点.有可能在treeview或xmldatasource控件上以另一种方式执行它,但xpath似乎最明显

谢谢,Psy

Luc*_*ero 7

您可以检查祖先轴数,实际上是深度:

//*[count(ancestor::*)<3]
Run Code Online (Sandbox Code Playgroud)