假设我有这个给定的 xml 文件

<root>
    <node>x</node>
    <node>y</node>
    <node>a</node>
</root>

我希望显示以下内容

ayx

使用类似的东西

<xsl:template match="/">
    <xsl:apply-templates select="root/node"/>
</xsl:template>
<xsl:template match="node">
    <xsl:value-of select="."/>
</xsl:template>
有帮助吗?

解决方案

简单的!

<xsl:template match="/">
    <xsl:apply-templates select="root/node">
        <xsl:sort select="position()" data-type="number" order="descending"/>
    </xsl:apply-templates>
</xsl:template>

<xsl:template match="node">
    <xsl:value-of select="."/>
</xsl:template>

其他提示

您可以使用 xsl:sort 来完成此操作。设置 data-type="number" 很重要,因为否则,位置将被排序为字符串,因此,第 10 个节点将在第 2 个节点之前被考虑。

<xsl:template match="/">
    <xsl:apply-templates select="root/node">
        <xsl:sort 
            select="position()" 
            order="descending" 
            data-type="number"/>
    </xsl:apply-templates>
</xsl:template>
<xsl:template match="node">
    <xsl:value-of select="."/>
</xsl:template>
<xsl:template match="/">
        <xsl:apply-templates select="root/node[3]"/>
        <xsl:apply-templates select="root/node[2]"/>
        <xsl:apply-templates select="root/node[1]"/>
    </xsl:template>
    <xsl:template match="node">
        <xsl:value-of select="."/>
    </xsl:template>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top