existe aussi en version
SQL et PHP Développement durable

3.XSLT

3.3.La transformation XSL

Voici la première étape.
<?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" version="1.0" encoding="ISO-8859-1" indent="yes"/>
    <xsl:template match="/">
        <html>
            <head><title>Annuaire</title></head>
            <body>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>
En appliquant cette feuille de style [comment?] (Cf. section "installation") sur n'importe quel fichier XML on aura:
<html>
    <head><title>Annuaire</title></head>
    <body>
    </body>
</html>
  • A la première ligne, on précise la version d'XML que l'on utilise, (n'oublions pas qu'un fichier XSL est un fichier XML [c'est quoi?] ) ainsi que l'encodage [c'est quoi?] (ici l'encodage europe de l'ouest)
  • Ensuite on trouve ce qui différencie un fichier XSL d'un fichier XML. La racine du fichier est imposée, elle doit être <xsl:stylesheet> (ou son alias <xsl:transform>) et doit préciser la version d'XSLT utilisée.
  • On définit le type de fichier de sortie dont 3 sont reconnus: text, xml ou html. Ici on a bien entendu choisit HTML. On a également défini l'encodage.
  • <xsl:template match="/"> est évoqué dès que la racine du fichier XML à transformer est rencontrée. Dans le cas présent dès que la racine est affichée le parseur écrit le contenu de la balise <xsl:template/>
Sur cet exemple, on ne le voit pas très bien mais un fichier XSL n'est pas comme un programme ordinaire, il ne se lit pas nécessairement de haut en bas. Tout dépend du contenu de votre fichier XML.

3.4.Tranformation XSL (apply-templates)

Après la première, la deuxième étape.
<?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" encoding="ISO-8859-1"/>
    <xsl:template match="/">
        <html>
            <head><title>Annuaire</title></head>
            <body>
                <xsl:apply-templates select="annuaire"/>
            </body>
        </html>
    </xsl:template>
    <xsl:template match="annuaire">
        <table border="1">
            <tr><th>Nom</th><th>Prenom</th><th>email</th></tr>
            <xsl:apply-templates select="personne"/>
        </table>
    </xsl:template>

    <xsl:template match="personne">
    </xsl:template>
</xsl:stylesheet>
  • On a rajouté la balise <xsl:apply-templates> au milieu des balises body pour indiquer au parser qu'à cet endroit on souhaite appliquer les transformations de la balise annuaire.
  • La balise annuaire est très similaire à la précédente, on décrit le début du tableau, on demande la transformation des balises personne puis on décrit la fin du tableau.
  • La balise personne est très simple pour le moment.
Il est temps maintenant de passer à l'ultime étape.