<xsl:apply-templates> |
Donne pour consigne au processeur XSLT d'appliquer les modèles appropriés à un ensemble de nœuds.
Catégorie
Instruction
Attributs obligatoires
Aucun.
Attributs facultatifs
select Contient une expression XPath qui sélectionne les nœuds sur lesquels sont appliqués les modèles. Les valeurs valides comprennent * pour pouvoir sélectionner la totalité de l'ensemble de nœuds. Sans cet attribut, tous les enfants d'élément du nœud actuel sont sélectionnés. mode Définit un mode de traitement, une syntaxe appropriée permettant d'écrire des modèles particuliers à des fins spécifiques. Par exemple, vous pouvez écrire un modèle < xsl:template > avec mode= " toc " pour traiter un nœud de la table des matières d'un document, et un autre modèle < xsl:template > avec mode= " print ", mode= " online ", mode= " index " , etc. pour traiter la même information à des fins différentes.
Contenu
L'élément <xsl:apply-templates> peut contenir un nombre quelconque d'éléments <xsl:sort> et <xsl:with-param>. Dans la plupart des cas, <xsl:apply-templates> est vide.
Apparaît dans
<xsl:apply-templates> apparaît dans un modèle.
Défini dans
XSLT section 5.4, Application de règles de modèle.
Exemple
Dans ce cas précis (voir chapitre 9), il fallait créer plusieurs sorties différentes à partir des mêmes données. L'attribut mode de l'élément <xsl:apply-templates> a permis de répondre à ce besoin. Voici le modèle principal (match="/") :
    <xsl:template match="/">
      <xsl:apply-templates select="tutorial" mode="build-main-index"/>
      <redirect:write select="concat($curDir, $fileSep, 'index.html')">
        <xsl:apply-templates select="tutorial" mode="build-main-index"/>
      </redirect:write>
      <xsl:apply-templates select="tutorial" mode="build-section-indexes"/>
      <xsl:apply-templates select="tutorial" mode="build-individual-panels"/>
      <xsl:apply-templates select="tutorial" mode="generate-graphics"/>
      <xsl:apply-templates select="tutorial" mode="generate-pdf-file">
        <xsl:with-param name="page-size" select="'ltr'"/>
      </xsl:apply-templates>

      <xsl:apply-templates select="tutorial" mode="generate-pdf-file">
        <xsl:with-param name="page-size" select="'a4'"/>
      </xsl:apply-templates>
      <xsl:apply-templates select="tutorial" mode="generate-zip-file"/>
    </xsl:template>
Cet exemple sélectionne l'élément <tutorial> huit fois, mais applique chaque fois les modèles avec un mode différent (ou des paramètres différents pour le même mode).