说我有这个给定的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>
答案 0 :(得分:30)
容易!
<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>
答案 1 :(得分:3)
您可以使用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>
答案 2 :(得分:0)
<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>