Fonctionnement des programmes XSL-XSLT

La récursivité

 <xsl:template match="XPATH-1">
   ...
   <xsl:apply-templates select="XPATH-2"/>
    ...
</xsl:template> 
 <xsl:template match="XPATH-2">
   ...
   <xsl:apply-templates select="XPATH-3"/>
    ...
</xsl:template>
 <xsl:template match="XPATH-3">
   ...
   <xsl:value-of select="XPATH-4"/>
    ...
</xsl:template> 

Règles par défaut

XSLT comporte trois règles par défaut qui sont appliquées quand aucune règle du programme n'est sélectionnée.

  1. La première règle s'applique à la racine et à tous les éléments et déclenche un appel récursif sur tous les fils du nœud courant :

    <xsl:template match="*|/"> <xsl:apply-templates/> </xsl:template>

  2. La deuxième règle s'applique aux nœuds texte et aux attributs et insère le résultat textuel de ces nœuds dans le document résultat :

    <xsl:template match="text()|@*"> <xsl:value-of select="."/> </xsl:template>

  3. La troisième règle s'applique aux commentaires et aux instructions de traitement et les ignore :

    <xsl:template match="processing-instruction() | comment()" />

Le programme XSLT minimal

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"/>

Il faut donc prendre garde aux règles par défaut, sources d'effets de bord.

Veiller à bien traiter tous les cas.

Court-circuiter les règles par défaut, en générant des messages d'erreurs sur la sortie.

Mode, priorité, règles nommées

  • priority : permet de surcharger les règles de priorité par défaut

  • mode : permet de définir plusieurs règles pour une même prémisse et de choisir explicitement celle que l'on veut au moment de l'appel

  • name : permet de définir des templates nommés, qui sont appelés explicitement (comme des fonctions) par l'instruction <call-template> et non plus seulement par le moteur de récursivité.

Priorité entre les règles

AccueilProgrammation XSL-XSLT > Fonctionnement des programmes XSL-XSLT< PrécédentSuivant >