如何在XSLT 1.x中的排序循环中访问下一个同级?

问题描述 投票:0回答:1

我有此输入XML:

<projects>
    <project>
        <number>1</number>
        <title>Project X</title>
    </project>
    <project>
        <number>unknown</number>
        <title>Project Y</title>
    </project>
    <project>
        <number>2</number>
        <title>Project Z</title>
    </project>
</projects>

XSL以排序的方式遍历所有项目项,如果下一个同级项目包含数字unknown ...,我想做些事情。

我该怎么做?

这不起作用:

<xsl:for-each select="/*/projects/project">
  <xsl:sort select="./title"/>
  <xsl:if test="./following-sibling::*[1]/number = 'unknown'">
    ...
  </xs:if>
</xsl:for-each>

我有此输入XML:1

xml xslt xslt-1.0
1个回答
0
投票

这里是解决此问题的方法:在循环中对元素进行排序时,您不能使用同级函数,因为基础节点列表仍未排序,因此您访问错误的节点。

解决方案是先对节点排序,然后执行同级功能。

© www.soinside.com 2019 - 2024. All rights reserved.