<xsl:sort> | |
Définit une clé de tri pour le contexte actuel. Cet élément apparaît comme un enfant des éléments <xsl:apply-templates> ou <xsl:for-each>. Dans ces éléments, le premier <xsl:sort> définit la clé de tri principale, le second <xsl:sort> définit la clé de tri secondaire, etc. | |
Catégorie | |
Subinstruction (<xsl:sort> apparaît toujours comme un enfant des éléments <xsl:apply-templates> ou <xsl:for-each>) |
|
Attributs obligatoires | |
Aucun. |
|
Attributs facultatifs | |
|
|
Contenu | |
Aucun. |
|
Apparaît dans | |
<xsl:apply-templates> et <xsl:for-each>. |
|
Défini dans | |
XSLT section 10, Tri. |
|
Exemple | |
La feuille de style suivante illustre le fonctionnement de l'élément <xsl:sort> : <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:variable name="newline"> <xsl:text> </xsl:text> </xsl:variable> <xsl:template match="/"> <xsl:value-of select="$newline"/> <xsl:call-template name="ascending-alpha-sort"> <xsl:with-param name="items" select="/sample/textlist/listitem"/> </xsl:call-template> <xsl:call-template name="ascending-alpha-sort"> <xsl:with-param name="items" select="/sample/numericlist/listitem"/> </xsl:call-template> <xsl:call-template name="ascending-numeric-sort"> <xsl:with-param name="items" select="/sample/numericlist/listitem"/> </xsl:call-template> <xsl:call-template name="descending-alpha-sort"> <xsl:with-param name="items" select="/sample/textlist/listitem"/> </xsl:call-template> </xsl:template> <xsl:template name="ascending-alpha-sort"> <xsl:param name="items"/> <xsl:text>Ascending text sort:</xsl:text> <xsl:value-of select="$newline"/> <xsl:for-each select="$items"> <xsl:sort select="."/> <xsl:value-of select="."/> <xsl:value-of select="$newline"/> </xsl:for-each> <xsl:value-of select="$newline"/> </xsl:template> <xsl:template name="descending-alpha-sort"> <xsl:param name="items"/> <xsl:text>Descending text sort:</xsl:text> <xsl:value-of select="$newline"/> <xsl:for-each select="$items"> <xsl:sort select="." order="descending"/> <xsl:value-of select="."/> <xsl:value-of select="$newline"/> </xsl:for-each> <xsl:value-of select="$newline"/> </xsl:template> <xsl:template name="ascending-numeric-sort"> <xsl:param name="items"/> <xsl:text>Ascending numeric sort:</xsl:text> <xsl:value-of select="$newline"/> <xsl:for-each select="$items"> <xsl:sort select="." data-type="number"/> <xsl:value-of select="."/> <xsl:value-of select="$newline"/> </xsl:for-each> <xsl:value-of select="$newline"/> </xsl:template> </xsl:stylesheet> La feuille de style définit trois modèles nommés, chacun triant les éléments <listitem> dans un ordre différent ou avec un data-type différent. La feuille de style est appliquée au document suivant : <?xml version="1.0"?> <sample> <numericlist> <listitem>1</listitem> <listitem>3</listitem> <listitem>23</listitem> <listitem>120</listitem> <listitem>2</listitem> </numericlist> <textlist> <listitem>3</listitem> <listitem>apple</listitem> <listitem>orange</listitem> <listitem>dragonfruit</listitem> <listitem>carambola</listitem> </textlist> </sample> Les résultats sont les suivants : Ascending text sort: 3 apple carambola dragonfruit orange Ascending text sort: 1 120 2 23 3 Ascending numeric sort: 1 2 3 23 120 Descending text sort: orange dragonfruit carambola apple 3 L'attribut data-type="numeric" génère le tri des données dans un ordre numérique. |