我想计算根节点和当前节点之间特定节点的总数。 例如:
<w:body> <!-- root Node -->
<w:p/>
<w:rect>
<w:p>some text1</w:p>
</w:rect>
<w:p/>
<w:rect>
<w:p>some text2</w:p>
</w:rect>
<w:p/>
<w:p/>
<w:p/>
<w:rect>
<w:p>some text5</w:p> <!-- This is current node now -->
</w:rect>
<w:p/>
<w:p/>
<w:p/>
<w:p/>
</w:body>
这是我的场景。这里,假设一些文本是我当前的节点。所以,现在我想得到当前节点的父:: w:p(假设此节点名称为“targetNode”)< / strong>即可。之后我想计算从根节点到 targetNode 的相同w:p级别的总数。
我想要的输出是:5
请指导我摆脱这个问题...
答案 0 :(得分:2)
这个单一的XPath表达式怎么样:
count(ancestor::w:p[1]/preceding-sibling::w:p + 1)
通过这种方式,我们获得了第一个祖先 w:p + 1(第一个祖先 w:)的所有先前兄弟 w:p 节点的计数。 p 本身)。