<xsl:if> |
Implémente une instruction if. Il contient un attribut test et un modèle XSLT. Si l'évaluation de l'attribut test renvoie la valeur booléenne true, le modèle XSLT est traité. Cet élément ne fait qu'implémenter une instruction if ; si une instruction if-then-else est requise, il faut utiliser l'élément <xsl:choose> accompagné d'un élément <xsl:when> unique et d'un élément <xsl:otherwise> unique.
Catégorie
Instruction
Attributs obligatoires
test L'attribut test contient une expression booléenne. Si l'évaluation renvoie la valeur booléenne true, le modèle XSLT de l'élément < xsl:if > est alors traité.
Attributs facultatifs
Aucun.
Contenu
Un modèle XSLT.
Apparaît dans
<xsl:if> apparaît dans un modèle.
Défini dans
XSLT section 9.1, Traitement conditionnel à l'aide de xsl:if.
Exemple
La feuille de style suivante illustre le fonctionnement de l'élément <xsl:if> :
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

      <xsl:output method="text"/>

      <xsl:variable name="newline">
    <xsl:text>
    </xsl:text>
      </xsl:variable>

      <xsl:template match="/">
        <xsl:value-of select="$newline"/>
        <xsl:text>Here are the odd-numbered items from the list:</xsl:text>
        <xsl:value-of select="$newline"/>
        <xsl:for-each select="list/listitem">
          <xsl:if test="(position() mod 2) = 1">
            <xsl:number format="1. "/>
            <xsl:value-of select="."/>
            <xsl:value-of select="$newline"/>
          </xsl:if>
        </xsl:for-each>
      </xsl:template>

    </xsl:stylesheet>
Cette feuille de style utilise l'élément <xsl:if> pour déterminer si la position d'un élément <listitem> donné correspond à un nombre impair. Le cas échéant, il est écrit dans l'arborescence de résultat. La feuille de style est appliquée au document XML suivant :
    <?xml version="1.0"?>
    <list>
      <title>A few of my favorite albums</title>
      <listitem>A Love Supreme</listitem>
      <listitem>Beat Crazy</listitem>
      <listitem>Here Come the Warm Jets</listitem>
      <listitem>Kind of Blue</listitem>
      <listitem>London Calling</listitem>
      <listitem>Remain in Light</listitem>
      <listitem>The Joshua Tree</listitem>
      <listitem>The Indestructible Beat of Soweto</listitem>
    </list>
Une fois la transformation exécutée, les résultats sont les suivants :
    Here are the odd-numbered items from the list:
    1. A Love Supreme
    3. Here Come the Warm Jets
    5. London Calling
    7. The Joshua Tree