精确节点的祖先数

时间:2016-09-06 09:07:14

标签: xpath

像往常一样,我的问题很简单,但我似乎无法做我想做的事情:

<test targetAttribute="level 1">
   <test targetAttribute="level 2">
      <test targetAttribute="level 3">
         <test targetAttribute="level 4">
            <test targetAttribute="level 5">
            </test>
         </test>
      </test>
   </test>
</test>

我想知道有多少祖先拥有//test/@targetAttribute="level 5"节点。

我一直在尝试千件事,没有什么对我有用:

  • count(//test/@targetAttribute="level 5"/ancestor::*)
  • //test/@targetAttribute="level 5"/count(ancestor::*)
  • count(ancestor::*[//test/@targetAttribute="level 5"])
  • ...

我似乎无法在Google上找到我正在查看的内容...

1 个答案:

答案 0 :(得分:2)

元素已知祖先的概念,因此,首先,您需要找到具有@targetAttribute="level 5"的目标元素:

//test[@targetAttribute='level 5']

从这里开始,你应该可以修改上面的XPath来返回目标元素的祖先元素的数量:

count(//test[@targetAttribute='level 5']/ancestor::*)

<强> Demo

相关问题