Le langage XSL
Un premier exemple XSL

Home

Elaboration du fichier

Après cet aperçu théorique, étudions un exemple détaillé, soit une compilation de MP3.

Voici un fichier XML que l'on reproduit dans le Bloc-notes ou Notepad pour les "Windows"

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

Que l'on enregistre (non pas en type de document Texte) en " Type : Tous (*.*) " sous le nom xmldemo avec une extension .xml. Voir le fichier xml (IE 5 et +).

Passons maintenant au fichier XSL

Le but de l'exercice est de représenter la compilation de mp3 sous forme d'un tableau.

<?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>
<tr>
<td><xsl:value-of select="compilation/mp3/titre"/></td> <td><xsl:value-of select="compilation/mp3/artiste"/></td> </tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

Après les balises de départ d'un fichier XSL, on aborde un tableau tout à fait classique en Html. On remplit la cellule correspondante au titre par la balise xsl:value-of avec l'attribut select="compilation/mp3/titre" qui indique comme chemin d'accès la balise racine compilation la balise mp3 la balise titre. Et bien entendu de même pour la balise artiste.

On enregistre en " Type : Tous (*.*) " sous le nom xsldemo 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="xsldemo.xsl"?> <compilation>
<mp3>
<titre>Foule sentimentale</titre>
<artiste>Alain Souchon</artiste>
</mp3>
etc...

Et miracle, notre stupide fichier XML plein de balises devient un beau tableau sympathique.

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


 

Afficher toutes les données

J'en vois là-bas qui sont un peu déçus de n'avoir qu'une référence de la compilation affichée dans le tableau. Bien allons-y...

Le fichier XML ne change pas. Soit :

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="xsldemo?.xsl"?>
<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>

On va reprendre le fichier XSL auquel on va ajouter la balise xsl:for-each [pour chaque] avec comme attribut select="compilation/mp3". Pour chaque arborescence où l'on retrouve les balises compilation et mp3, il suffit de faire une ligne de tableau <tr> avec dans la premier cellule <td>, le contenu de la balise <titre> xsl:value-of select="titre" et dans la seconde cellule <td>, le contenu de la balise <artiste> xsl:value-of select="artiste".

Ce qui donne :

<?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">
<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 avec l'extension .xsl. Voir le fichier xsl (IE 5 et +).

On n'oublie surtout pas de modifier le lien dans le fichier XML de base.

Il ne reste plus qu'à admirer le fichier dans le navigateur.

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


 

La suite ?

Le langage XSL est plus qu'une série de balises pour afficher du XML. Il comporte aussi des possibilités plus qu'utiles quand on est confronté à des données. Nous verrons plus loin comment le XSL permet :

    • de trier les données XML en ordre croissant ou décroissant.
    • de filtrer des éléments XML en fonction de certains critères.
    • de choisir des éléments.
    • de retenir des éléments par des tests conditionnels.