L’élément <xsl:sort> de XSLT :tri sur un champ

L’élément <xsl:sort> de XSLT


XML cours tutorial

L'élément <xsl:sort> est utilisé pour classer la sortie.

Cet élément permet d'effectuer un tri sur un jeu de nœuds. Il doit être placé soit dans :

L'élément <xsl:sort> peut être appelé plusieurs fois pour effectuer un tri multicritères.

Chaque appel à cet élément provoque un tri sur un champ spécifique, dans un ordre prédéfini.
Syntaxe :

<xsl:sort select="nœud" data-type="text | number | elt" order="ascending | descending" lang="nmtoken" case-order="upper-first | lower-first" />

  • select permet de spécifier un nœud comme clé de tri.
  • data-type correspond au type des données à trier. Dans le cas où le type est number, les données sont converties puis triés.
  • order correspond à l'ordre de tri. Cet attribut peut prendre la valeur ascending ou descending.
  • lang spécifie quel jeu de caractères utiliser pour le tri ; par défaut, il est déterminé en fonction des paramètres système.
  • case-order indique si le tri a lieu sur les majuscules ou minuscules en premier, selon qu'il prend la valeur upper-first ou lower-first.

Où mettre les informations de type

Pour trier la sortie, ajoutez simplement un élément de <xsl:sort> à l'intérieur de la < xsl : for-each > élément dans le fichier XSL :
Exemple :

Sélectionner le code

  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
    <body>
    <h2>Ma Collection de cd</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Title</th>
        <th>Artist</th>
                <th>Prix</th>
      </tr>
      <xsl:for-each select="catalog/cd">
              <xsl:sort select="artist" order="descending"/>
      <tr>
        <td><xsl:value-of select="title"/></td>
        <td><xsl:value-of select="artist"/></td>
                <td><xsl:value-of
  select="price"/></td>
      </tr>
      </xsl:for-each>
    </table>
    </body>
    </html>
  </xsl:template>
  </xsl:stylesheet>

 

L'attribut select indique suivant quel élément XML le trie sera éfféctué.

Dans cet exemple, la liste des CD est classée dans l'ordre alphabétique décroissant des noms de l'artiste.



Cours precedent:
cours precedent  Elément XSLT XSL for each
    Sommaire de :
Le langage XML
 Cours suivant:
Elément XSLT XSL if   cours suivant
Par carabde 10 mai 2014