Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 使用XSLT 1.0选择包含值的第一个节点的位置_Xml_Xslt_Xslt 1.0 - Fatal编程技术网

Xml 使用XSLT 1.0选择包含值的第一个节点的位置

Xml 使用XSLT 1.0选择包含值的第一个节点的位置,xml,xslt,xslt-1.0,Xml,Xslt,Xslt 1.0,我的结构如下: <?xml version="1.0" encoding="UTF-8"?> <catalog> <cd> <title>title1</title> </cd> <cd> <title>title1</title> </cd> <cd> <title>title2</title>

我的结构如下:

<?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>

标题1
标题1
标题2
标题2
标题2
标题2
标题4
标题5
有没有办法知道包含标题2的第一个
的位置

我试过了

<xsl:value-of select="count(catalog/cd[contains(., 'title2')])"/>



但是他们计算包含标题2的节点,我认为表达式应该是

<xsl:value-of select="count(//catalog/cd[1]/following-sibling::cd[title='title2'][1]/preceding-sibling::cd)+1" />

此外,如果要查找每个/catalog/cd的第一个
/title='title2'
,但从每个位置的当前位置开始,您可以使用

<xsl:value-of select="count(current()[1]/following-sibling::cd[title='title2'][1]/preceding-sibling::cd)+1" />

这正是我需要的。谢谢@gtosto

可能重复的
<xsl:value-of select="count(current()[1]/following-sibling::cd[title='title2'][1]/preceding-sibling::cd)+1" />