像往常一样,我的问题很简单,但我似乎无法做我想做的事情:
<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上找到我正在查看的内容...
答案 0 :(得分:2)
元素已知祖先的概念,因此,首先,您需要找到具有@targetAttribute="level 5"
的目标元素:
//test[@targetAttribute='level 5']
从这里开始,你应该可以修改上面的XPath来返回目标元素的祖先元素的数量:
count(//test[@targetAttribute='level 5']/ancestor::*)
<强> Demo
强>