existe aussi en version
SQL et PHP Développement durable

3.XSLT

3.6.Autre manière de faire

Cette version plus courte fonctionne également.
<?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/>
            </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/>
        </table>
    </xsl:template>

    <xsl:template match="personne">
        <tr>
            <td><xsl:value-of select="nom"/></td>
            <td><xsl:value-of select="prenom"/></td>
            <td><xsl:value-of select="email"/></td>
        </tr>
    </xsl:template>
</xsl:stylesheet>
  • Ici on a supprimé les attributs 'select' des balises xsl:apply-templates
  • On a aussi supprimé les balises <xsl:template match="prenom">,<xsl:template match="nom"> et <xsl:template match="email">
On peut aussi remarquer que dans ce cas on est libre de les mettre dans l'ordre que l'on veut. L'attribut 'select' fonctionne un peu comme les arborescences des répertoires. On peut aussi récupérer une balise en remontant dans l'arborescence.
Juste une petite modification dans la balise personne pour montrer comment on récupère un attribut.
<?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/>
            </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/>
        </table>
    </xsl:template>

    <xsl:template match="personne">
        <tr><td><xsl:value-of select="@type"/>: <xsl:value-of select="nom"/></td>
            <td><xsl:value-of select="prenom"/></td>
            <td><xsl:value-of select="email"/></td></tr>
    </xsl:template>
</xsl:stylesheet>


  • On met un @ devant les attributs pour les récupérer.
Et si on avait voulu récupérer l'attribut toto de la balise annuaire dans la balise personne, on aurait mis './../@toto' dans l'attribut select. C'est en fait le langage XPath qui est utilisé.

3.7.Conclusion

Ce n'est qu'un aperçu de ce que l'on peut faire avec XSLT mais rien qu'avec ceci vous pouvez déjà vous amuser. J'espère que cela vous suffit pour mesurer l'intérêt qu'apportent de telles feuilles de style.