的节点
我有以下结构:
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<cd>
<title>title1</title>
</cd>
<cd>
<title>title1</title>
</cd>
<cd>
<title>title2</title>
</cd>
<cd>
<title>title2</title>
</cd>
<cd>
<title>title2</title>
</cd>
<cd>
<title>title2</title>
</cd>
<cd>
<title>title4</title>
</cd>
<cd>
<title>title5</title>
</cd>
</catalog>
有没有办法知道包含title2的第一个<cd>
的位置?
我尝试了
<xsl:value-of select="count(catalog/cd[contains(., 'title2')])"/>
和
<xsl:value-of select="count(catalog/cd[./title='title2']/preceding-sibling::*)" />
,但它们计算包含title2
我认为表达式应该是
<xsl:value-of select="count(//catalog/cd[1]/following-sibling::cd[title='title2'][1]/preceding-sibling::cd)+1" />
此外,如果for-each/catalog/cd并想找到第一个/title = 'title2'
,但是从当前的for-each位置开始,您可以使用
<xsl:value-of select="count(current()[1]/following-sibling::cd[title='title2'][1]/preceding-sibling::cd)+1" />
这正是我需要的。谢谢@gtosto!