xslt for-each 和排序问题

Posted

技术标签:

【中文标题】xslt for-each 和排序问题【英文标题】:xslt for-each and sorting issues 【发布时间】:2021-05-31 18:24:28 【问题描述】:

下面是我的 XLST。我的问题是为什么我的输出没有正确排序?它应该按升序排序,我尝试在没有辅助模板的情况下这样做,它可以工作,但是一旦在模板中使用它就不会输出排序。

XSLT 代码:

    <xsl:template match="movie">
        <xsl:for-each select ="movies/movie">
            <xsl:sort select="title" order="ascending" />
            <tr>
                <td>
                    <xsl:value-of select ="@id"/>
                    <br></br>
                </td>
                <td>
                    <xsl:value-of select ="title"/>
                    <br></br>
                </td>
                <td>
                    <xsl:value-of select ="pdirector"/>
                    <br></br>
                </td>
                <td>
                    <xsl:value-of select ="year"/>
                    <br></br>
                </td>
            </tr>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>`

【问题讨论】:

【参考方案1】:

看起来不像

<xsl:template match="movie">
    <xsl:for-each select ="movies/movie">

你想要的

<xsl:template match="movies">
    <xsl:for-each select="movie">

【讨论】:

以上是关于xslt for-each 和排序问题的主要内容,如果未能解决你的问题,请参考以下文章

XSLT for-each 无法提取值

XSLT 1.0 / 使用条件对每个结果进行排序

如何在 XSLT 中打破 for-each 以及如何更新 XSLT 中的现有变量

XSLT 2.0:根据 for-each -group 的当前索引评估和修改元素值

XSLT - 在嵌套的 for-each 中查找 position()

有没有办法在 XSLT 转换中用应用模板替换 for-each?