L'élément <xsl:sort> permet d'effectuer un tri selon des critères spécifiés.

<xsl:sort 
                   select="pattern"
                   lang="langue"
                   data-type="text|number|nom"
                   order="ascending|descending"
                   case-order="upper-first|lower-first"/>

Cet élément ne peut apparaître que dans les éléments <xsl:for-each> ou <xsl:apply-templates>.

L'élément <xsl:sort> doit être contenu dans une règle de modèle <xsl:template> qui pointe un des éléments parents de la clé de tri sélectionné par <xsl:sort select="clé_de_tri">.

Le noeud pointé par cette clé sera traîté dans un autre template qui appliquera le tri.

<xsl:template match="élément_parent">
   <xsl:apply-templates>
      <xsl:sort select="clé_de_tri"/>
         </xsl:apply-templates>
</xsl:template>
<xsl:template match="élément_fils">
   <xsl:apply-templates select="clé_de_tri"/>
</xsl:template>
Les attributs :
Attribut Description
select="pattern" sélectionne des noeuds dans une arborescence source.
lang="langue" spécifie un bigramme désignant une langue.
data-type="text|number|texte" indique le type de tri à effectuer
order="ascending|descending" spécifie un ordre de tri, soit descendant, soit ascendant.
case-order="upper-first|lower-first" indique si les majuscules doivent apparaître en premier.

Cet élément peut être contenu dans les instructions <xsl:apply-templates> et <xsl:for-each>.

Cet élément ne peut contenir aucunes instructions.

Exemple : [voir]
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" 
                        xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" media-type="text/html; charset=ISO-8859-1"/>
  <xsl:template match="/">
  <html>
      <head>
        <title>
        La logithèque : 
                <xsl:value-of select="logitheque/categorie[position()=8]/@nom"/>
        </title>
      </head>
      <body>
        <h2>
        <xsl:value-of 
                      select="logitheque/categorie[position()=8]/@nom"/>
        </h2>
        <table border="0">
        <tr>
          <th colspan="2">Logiciel</th>
        </tr>
        <tr>
          <th style="text-align:left">Editeur</th>
          <th>Langue</th>
        </tr>
        <xsl:apply-templates 
                        select="logitheque/categorie[position()=8]/logiciel">
          <xsl:sort select="nom"/>
        </xsl:apply-templates>
        </table>
      </body>
  </html>
  </xsl:template>
  <xsl:template match="logitheque/categorie[position()=8]/logiciel">
  <tr>
      <td colspan="2" class="c1">
          <a href="{editeur/@lien}" target="_blank" 
                style="font-size:10pt; font-weight:bold">
            <xsl:apply-templates select="nom"/>
          </a>
          - <xsl:apply-templates select="commentaire"/>
      </td>
  </tr>
  <tr>
      <td>
        <a href="{editeur/@lien}" target="_blank">
        <xsl:apply-templates select="editeur"/>
        </a>
      </td>
      <td>
        <xsl:apply-templates select="langue"/>
      </td>
  </tr>
  </xsl:template>
</xsl:stylesheet>
En savoir plus :
Découvrez cet élément sur le site du W3CDécouvrez cet élément sur le site de Microsoft