L’élément < xsl : apply-templates > de XSLT

L’élément < xsl : apply-templates >


XML cours tutorial

L’élément < xsl : apply-templates > est utilisé dans la balise <xsl:template/>, ce qui permet d'appliquer la règle de transformation contenu dans la balise template.
L’élément < xsl : apply-templates > sert pour appliquer un modèle de l'élément en cours ou de nœuds enfants à l'élément actuel.
Si nous ajoutons un attribut select pour l’élément < xsl : apply-templates > il traitera uniquement l'élément enfant qui correspond à la valeur de l'attribut. Nous pouvons utiliser l'attribut select pour spécifier l'ordre dans lequel les nœuds enfants seront traités.
Pour mieux comprendre il n’y a pas mieux qu’un exemple ; alors regardez la feuille de style XSL suivante :

Sélectionner le code

  <?xml version="1.0" encoding="ISO-8859-1"?>
  <xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
    <body>
    <h2>Ma collection de cd</h2>
    <xsl:apply-templates/>
    </body>
    </html>
  </xsl:template>
   
  <xsl:template match="cd">
    <p>
    <xsl:apply-templates select="title"/>
    <xsl:apply-templates select="artist"/>
    </p>
  </xsl:template>
  <xsl:template match="title">
    Titre: <span style="color:#ff0000">
    <xsl:value-of select="."/></span>
    <br />
  </xsl:template>
  <xsl:template match="artist">
    Artiste: <span style="color:#0000ff">
    <xsl:value-of select="."/></span>
    <br />
  </xsl:template>
  </xsl:stylesheet>

 

Dan l’exemple ci-dessus un simple apply-templates (sans attributs) dans la ligne n° 7 examine tous les noeuds enfants dans l’ordre. Si une règle qui correspond à un noeud est détectée, elle sera appliquée
Puis dans les deux lignes  13 et 14 deux modèles à appliquer respectivement au title et artist  
Résumons :
·  Le "moteur" XSLT cherche d’abord à exécuter la première règle qu’il trouve pour l’élément racine.
· Cette règle normalement fait appel à d’autres règles

  • soit implicitement : <xsl:apply-templates/>
  • soit en faisant appel à des règles précises: <xsl:apply-templates select="regle"/>

· Chacune des sous règles qui peuvent s’appliquer sera exécutée dans l’ordre et ainsi de suite
·  Le processeur ne trouve que les règles qui s’appliquent aux enfants du contexte actuel !



Cours precedent:
cours precedent  Elément XSLT xsl:choose
    Sommaire de :
Le langage XML
 Cours suivant:
Tutorial XPATH   cours suivant
Par carabde 10 mai 2014