我怎么知道xslt中根节点和当前节点之间特定节点的总数?

时间:2011-08-25 10:57:29

标签: xml xslt xslt-2.0

我想计算根节点和当前节点之间特定节点的总数。 例如:

 <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

请指导我摆脱这个问题...

1 个答案:

答案 0 :(得分:2)

这个单一的XPath表达式怎么样:

 count(ancestor::w:p[1]/preceding-sibling::w:p + 1)

通过这种方式,我们获得了第一个祖先 w:p + 1(第一个祖先 w:)的所有先前兄弟 w:p 节点的计数。 p 本身)。