如何获取给定XML中节点的相对位置。假设我有xml以下,我想知道第二个a中的第一个b节点是位置3。
<a>
<b></b>
<b></b>
</a>
<a>
<b></b>
<b></b>
</a>
<xsl:for-each select="a">
<dummy>
<xsl:for-each select="b">
<xsl:variable name="pos" select="position()" />
<dummy2><xsl:value-of select="$pos"/></dummy2>
</xsl:for-each>
</dummmy>
</xsl:for-each>
我希望dummy2有1,2,3,4个值。
<dummy>
<dummy2>1<dummy2>
<dummy2>2<dummy2>
</dummmy>
<dummy>
<dummy2>3<dummy2>
<dummy2>4<dummy2>
</dummmy>
答案 0 :(得分:0)
要检查当前结果,您需要在变量中分配所有转换,例如
<xsl:variable name="Data">
<xsl:for-each select="a">
<dummy>
<xsl:for-each select="b">
<dummy2><xsl:number level="any"/></dummy2>
</xsl:for-each>
</dummy>
</xsl:for-each>
</xsl:variable>
之后,您可以轻松地在结果数据中解释您的查询
<xsl:value-of select="count($Data//dummy/dummy2[not(.=preceding-sibling::*)])"></xsl:value-of>