Le langage XSL
Filtrer avec le langage XSL

Home

Filtrer avec le XSL

Le langage XSL permet aussi de filtrer les données du fichier XML associé selon des critères comme égal, pas égal, plus grand que, plus petit que. Pour ce faire, il suffira d'utiliser l'attribut select="chemin_d'accès[balise='xxx']".

Les opérateurs possibles sont :

    • = pour égal.
    • != pour différent (non égal).
    • > pour plus grand que.
    • < pour plus petit que.

Un peu abstrait peut-être ? Rien de tel qu'un exemple...
Dans la compilation mp3, ne reprenons que les titres de l'artiste Alain Souchon. L'attribut select devient select="compilation/mp3[artiste='Alain Souchon']".

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 reprendre dans notre compilation de mp3 en XML que les titres d'Alain Souchon.

<?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>Titre</td>
<td>Artiste</td>
</tr>
<xsl:for-each select="compilation/mp3[artiste='Alain Souchon']">
<tr>
<td><xsl:value-of select="titre"/></td>
<td><xsl:value-of select="artiste"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

On enregistre le fichier sous le nom xsl_filter avec l'extension .xsl. Voir le fichier xsl (IE 5 +).

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_filter.xsl"?>
<compilation>
<mp3>
<titre>Foule sentimentale</titre>
<artiste>Alain Souchon</artiste>
</mp3>
etc...

Et voilà notre fichier avec uniquement les titres d'Alain Souchon.

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

Trop facile, non ?