使用xpath使用属性查找节点的位置

时间:2012-03-06 18:12:40

标签: xml xpath

如何根据某个属性值获取节点的位置?以下文章介绍了如何使用元素执行此操作:

Find position of a node using xpath

因此,如果我们将上述帖子中的示例xml更改为:

<a>
    <b val="zyx" />
    <b val="wvu" />
    <b val="tsr" />
    <b val="qpo" />
</a>

我如何获得a / b [@val ='tsr']的位置?

1 个答案:

答案 0 :(得分:1)

应该几乎完全相同:

count(a/b[@val='tsr']/preceding-sibling::*)+1

使用示例......

XSLT 1.0

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/">
    <xsl:value-of select="count(a/b[@val='tsr']/preceding-sibling::*)+1"/>
  </xsl:template>

</xsl:stylesheet>

输出:

3