xsl when template for example condicional xslt sorting

xslt - when - aplicar plantillas en orden inverso



xslt template (2)

¡Fácil!

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

decir que tengo este archivo xml

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

y quiero que se muestre lo siguiente

ayx

usando algo similar a

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


Puedes hacer esto, usando xsl: sort. Es importante establecer el tipo de datos = "número" porque de lo contrario, la posición se ordenará como una cadena, y al final, el 10º nodo se considerará antes del 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>