xsl variable transformar for ejemplos ejemplo choose xml xslt xsl-fo

xml - variable - Cómo hacer un XSL: para cada uno en orden inverso



xslt (3)

Estoy buscando invertir en XSL / FO un bucle para cada uno.

por ejemplo el xml

<data> <record id="1"/> <record id="2"/> <record id="3"/> <record id="4"/> <record id="5"/> <record id="6"/> </data>

con el xsl

<xsl:for-each select="descendant-or-self::*/record"> <xsl:value-of select="@id"/> </xsl:for-each>

Estoy buscando la salida 654321 y no 123456

¿Cómo es esto posible?


Sí, Alexander tiene razón, olvidó el tipo de datos, sin embargo:

<xsl:for-each select="descendant-or-self::*/record"> <xsl:sort select="@id" order="descending" data-type="number" /> <xsl:value-of select="@id"/> </xsl:for-each>

(sin eso, se encontrará con problemas de clasificación con números de más de 9)


Use xsl:sort no para ordenar por @id sino para ordenar por position() :

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/data"> <xsl:for-each select="descendant-or-self::*/record"> <xsl:sort select="position()" data-type="number" order="descending"/> <xsl:value-of select="@id"/> </xsl:for-each> </xsl:template> </xsl:stylesheet>


xsl:sort es tu amigo;

<xsl:for-each select="descendant-or-self::*/record"> <xsl:sort select="@id" order="descending" /> <xsl:value-of select="@id"/> </xsl:for-each>