XSLT Langage de transformation d’arbre
Règles par défaut
Traverser la racine et tous les noeuds « élément » <xsl:template match= »*|/ »> <xsl:apply-templates/>
XSLT -Yves bekkers – IFSIC 32
</xsl:template>
Sortir les feuilles « texte » et les « attributs » <xsl:template match= »text()|@* »> <xsl:value-of select= ». »/> </xsl:template>
• Commentaires et instructions de traitement <xsl:template match= »processinginstruction()|comment() »/>
XSLT -Yves bekkers – IFSIC 33
• Ne rien faire
Feuille de style minimum
<?xml version= »1.0″?> <xsl:stylesheet version= »1.0″ xmlns:xsl= « http://www.w3.org/1999/XSL/Transform »>
XSLT -Yves bekkers – IFSIC 34
<xsl:output method= »text »/>
</xsl:stylesheet> • Traverse tout l’arbre et sort les feuilles (contenu d’élément texte et valeur d’attribut)
Génération de contenu
XSLT -Yves bekkers – IFSIC 35
Résultat littéral ou non ?
Méthodes de génération de contenu
• Deux méthodes de génération de contenu : 1) Résultat litéral <xsl:template match= »subtitle »> <h2><xsl:apply-templates/></h2>
XSLT -Yves bekkers – IFSIC 36
</xsl:template> 2) Résultat non litéral (validation possible de la feuille de style) <xsl:template match= »subtitle »> <xsl:element name= »h2″> <xsl:apply-templates/> </xsl:element> </xsl:template>
Valeur d’attribut par résultat littéral évalué Évaluation d’expression xpath en accolades dans les valeurs d’attribut • Arbre en entrée <a href= »fic.txt »/>
XSLT -Yves bekkers – IFSIC 37
• Template <xsl:template match= »a »> <b id= »{@href} »/> </xsl:template> • En sortie <b id= »fic.txt »/>
Résultat non littéral <xsl:attribute> • Arbre en entrée <a href= »fic.txt »/> • Template <xsl:template match= »a »>
XSLT -Yves bekkers – IFSIC 38
<xsl:template match= a > <b><xsl:attribute name= »id »> <xsl:value-of select= »@href »/> </xsl:attribute></b> </xsl:template> • En sortie <b id= »fic.txt »/>