Le langage XSL
Trier avec le langage XSL

Home

Trier avec le XSL

Le langage XSL permet en quelques mots de trier des données du fichier XML associé en ordre croissant ou décroissant. Ainsi, il suffit d'ajouter l'attribut order-by="+balise" pour trier en ordre croissant et order-by="-balise" pour trier en ordre décroissant. Et c'est tout !

Il me plaît ici de souligner avec cette balise, la puissance du langage XSL. En outre si vous n'avez pas oublié les quelques mots d'anglais appris à l'école, le langage XSL est assez intuitif. Ainsi order-by="+balise" peut se lire : "ordonner ou trier par ordre croissant (+) les données comprises entre la balise désignée".

Elaboration du fichier

Reprenons notre fichier XML (inchangé).

<?xml version="1.0"?> <compilation>
<mp3>
<titre>Foule sentimentale</titre>
<artiste>Alain Souchon</artiste> </mp3>
<mp3>
<titre>Solaar pleure</titre> <artiste>MC Solaar</artiste> </mp3>
<mp3>
<titre>Le baiser</titre> <artiste>Alain Souchon</artiste> </mp3>
<mp3>
<titre>Pourtant</titre>
<artiste>Vanessa Paradis</artiste> </mp3>
<mp3>
<titre>Chambre avec vue</titre> <artiste>Henri Salvador</artiste> </mp3>
</compilation>

Voir le fichier xml (IE 5 et +).

Passons maintenant au fichier XSL

Nous allons trier notre compilation de mp3 en XML en ordre alphabétique croissant du nom des artistes. Et pour changer un peu, on permute les colonnes "titre" et "artiste" pour bien montrer que le XSL affiche les données du fichier XML selon le fichier Html (ou autre) qu'il contient.

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<body>
<table border="1" cellspacing="0" cellpadding="3">
<tr bgcolor="#FFFF00">
<td>Artiste</td>
<td>Titre</td>
</tr>
<xsl:for-each select="compilation/mp3" order-by="+artiste">
<tr>
<td><xsl:value-of select="artiste"/></td>
<td><xsl:value-of select="titre"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

On enregistre le fichier sous le nom xsl_order avec une extension .xsl. Voir le fichier xsl (IE 5 et +).

On revient au fichier XML et on y ajoute la balise pour y associer le fichier XSL.

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="xsl_order.xsl"?>
<compilation>
<mp3>
<titre>Foule sentimentale</titre>
<artiste>Alain Souchon</artiste>
</mp3>
etc...

Et miracle, notre stupide fichier XML plein de balises devient un tableau ordonné.

Que vous pouvez aussi apprécier en direct. Voir le fichier xml + xsl (IE 5 et +).