2011-08-25 36 views
1

我想统计根节点和当前节点之间的特定节点的总数。 例如:我如何知道xslt中根节点和当前节点之间的特定节点总数?

<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> 

这是我scenario.Here,假设一些文字是我目前node.So,现在我想父::宽:当前节点的P(假设该节点名称作为“targetNode”)。之后,我想计算从根节点到targetNode的同一级别w:p的总数。

我想要的输出结果为:5

请指引我走出这个问题...

+0

@don Rody:假设它可能包含孩子或没有任何东西。我想从当前节点的根节点到父节点计算总数。就是这样。 – Saravanan

+0

如果'some text5'是您在XML示例中查看的文本节点,然后导航到本身位于'w:rect'元素内的父'w:p'元素,那么我想知道5是想要的输出为“w:p的相同级别的总数”,因为父w'p'元素根本没有同级元素。那么你有什么样的水平? –

+0

只有这是根节点的直接孩子 – Saravanan

回答

2

这个XPath表达式是什么:

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

这样,我们得到所有先前兄弟的计数w:p第一祖先节点w:p + 1(第一祖先w:p本身)。

+0

:对不起empo,它不工作在我的情况下...它被retreived 0 – Saravanan

+0

@Saravanan我的错,没有看到w:p不是直接父母,现在检查我的答案) –

+1

::非常感谢...它工作绝对好... – Saravanan

相关问题