使用属性查找使用xpath的节点位置
问题描述:
如何根据某个属性值获取节点的位置?以下职位显示了如何元素做到这一点:如果我们在上面提到的更改信息的示例XML使用属性查找使用xpath的节点位置
Find position of a node using xpath
所以:
<a>
<b val="zyx" />
<b val="wvu" />
<b val="tsr" />
<b val="qpo" />
</a>
我将如何得到的位置/ b [@val ='tsr']?
答
应该是同出一辙:
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
你测试你的解决方案?当我逐字复制你的解决方案并运行它对我的测试文件时,我得到的输出为1. 我尝试了类似于发布此问题之前发布的内容,但仍得到1而不是3 – rokeefe1 2012-03-09 17:05:47
@ user1252899 - 是的,我做了。我测试了Xalan,Saxon 6.5.5,Saxon 9.3(HE,PE和EE)和AltovaXML,并且都给了我“3”的结果。您的测试文件是否与问题中发布的XML完全相同?你在用什么处理器? – 2012-03-09 18:05:53
问题出在我的XML文件中。谢谢你的帮助! – rokeefe1 2012-03-19 14:27:55