XPATH:使用Preceding为2个元素

时间:2016-09-16 08:34:07

标签: xml xslt xpath

我有以下结构,我想知道前面的部门

<manual>
  <body>
    <division> ..Div1..   </division>
    <division> ..Div2..   </division>
  </body>
</manual>

我想使用count(preceding :: body/division),以便在Div1下使用时返回 1 ,在{{1}下使用时返回 2 }}

但我不确定我们是否可以使用像body / division这样的语法。请帮助实现它。

1 个答案:

答案 0 :(得分:0)

preceding轴不会包含当前元素的祖先,因此在您的情况下count(preceding::body)会为两个div返回零。

试试这个表达式......

<xsl:value-of 
    select="count(ancestor::division[parent::body]|preceding::division[parent::body])" />

或者,如果你的div总是在division以下,你就可以这样做......

<xsl:value-of select="count(preceding::division[parent::body]) + 1" />,