Cours complet sur XSLT
Cours : Introduction et Utilisation de XSLT
- 1. Qu'est-ce que XSLT ?
XSLT (Extensible Stylesheet Language Transformations) est un langage qui permet de transformer un fichier
XML en un autre format : HTML, texte, ou même un autre XML.
Il est utilisé pour présenter les données XML, souvent sous forme de page web.
- 2. Structure de base d'un fichier XSLT
Voici la structure minimale :
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<!-- Transformation ici -->
</xsl:template>
</xsl:stylesheet>
- 3. Transformer XML en HTML
Tu peux transformer un XML vers une page HTML en insérant des balises HTML dans XSLT :
<xsl:template match="/">
<html>
<body>
<h1><xsl:value-of select="catalogue/titre"/></h1>
</body>
</html>
Cours complet sur XSLT
</xsl:template>
- 4. Parcourir les éléments XML
Pour afficher plusieurs éléments (ex : une liste de livres) :
<xsl:for-each select="catalogue/livre">
<p><xsl:value-of select="titre"/></p>
</xsl:for-each>
@ : pour accéder à un attribut XML (ex : @id).
- 5. Conditions (si... sinon)
Tu peux ajouter des conditions avec :
<xsl:if test="prix > 100">
<p>Article cher</p>
</xsl:if>
Ou :
<xsl:choose>
<xsl:when test="prix > 100">Cher</xsl:when>
<xsl:otherwise>Abordable</xsl:otherwise>
</xsl:choose>
- 6. Trier les éléments
Pour trier les éléments (ex : par nom) :
<xsl:for-each select="catalogue/livre">
<xsl:sort select="titre"/>
<p><xsl:value-of select="titre"/></p>
Cours complet sur XSLT
</xsl:for-each>
order="ascending" ou descending pour préciser le sens du tri.
- 7. Génération HTML dynamique
Tu peux générer des tableaux :
<table>
<xsl:for-each select="produits/produit">
<tr>
<td><xsl:value-of select="nom"/></td>
<td><xsl:value-of select="prix"/></td>
</tr>
</xsl:for-each>
</table>
- 8. Variables et paramètres
Variable :
<xsl:variable name="tva" select="0.2"/>
Paramètre dans un template :
<xsl:param name="categorie"/>
- 9. Templates réutilisables
<xsl:template name="afficherProduit">
<p><xsl:value-of select="nom"/></p>
</xsl:template>
Cours complet sur XSLT
<xsl:call-template name="afficherProduit"/>
- 10. Fonctions utiles de XPath
concat(), substring(), position(), last()
Exemple : <xsl:if test="position() mod 2 = 0">
- 11. XSLT côté navigateur ou serveur
Côté navigateur :
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
Côté serveur (PHP) :
$xslt = new XSLTProcessor();
$xslt->importStylesheet(DOMDocument::load('style.xsl'));
echo $xslt->transformToXML(DOMDocument::load('data.xml'));
- Résumé des points clés
Fonction | Description
-------------------|----------------------------------------------
<xsl:value-of> | Affiche la valeur d'un élément
<xsl:for-each> | Boucle sur des éléments
<xsl:if> | Condition simple
<xsl:choose> | Condition multiple (si/sinon)
<xsl:sort> | Trie des éléments
<xsl:template> | Crée une structure réutilisable
<xsl:variable> | Stocke une valeur
XPath | Sert à naviguer et filtrer dans le XML