existe aussi en version
SQL et PHP Développement durable

3.XSLT

3.5.Transformation XSL (value-of)

On se rapproche de la fin, maintenant il va falloir afficher le contenu d'une balise XML.
<?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">
        <tr><xsl:apply-templates/></tr>
    </xsl:template>
    <xsl:template match="nom">
        <td><xsl:value-of select="."/></td>
    </xsl:template>
    <xsl:template match="prenom">
        <td><xsl:value-of select="."/></td>
    </xsl:template>
    <xsl:template match="email">
        <td><xsl:value-of select="."/></td>
    </xsl:template>
</xsl:stylesheet>
  • Pour chacune des personnes on veut une nouvelle ligne c'est pourquoi la balise <xsl:apply-templates> est entre les balises <tr>
  • Il n'y a pas d'attribut select car on veut appliquer toutes les transformations. En fait on pouvait déjà le faire pour les autres balises.
  • Pour chacune des balises nom, prenom et email on veut que le contenu soit entre les balises HTML <td>. On utilise la balise XSL <xsl:value-of> pour afficher la valeur de nom, prenom ou email
A la page suivante nous allons voir un fichier différent qui arrive à un résultat identique.