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