L’élément < xsl : choose > de XSLT

L’élément < xsl : choose > de XSLT


XML cours tutorial

L’élément < xsl : choose > est utilisé en conjonction avec <xsl:when> et < xsl : otherwise > d'exprimer plusieurs tests conditionnels.

L’élément < xsl : choose >

L'élément < xsl : choose > permet de définir une liste de choix et d'affecter à chaque choix une transformation différente. Chaque choix est défini par un élément et un traitement par défaut peut être spécifié grâce à l'élément .

Syntaxe :

<xsl:choose>
         <xsl:when test="condition1">action1</xsl:when>
         <xsl:when test="condition2">action2</xsl:when>
         <xsl:otherwise>autre action</xsl:otherwise>
     </xsl:choose>

Pour insérer un test conditionnel multiples pour le fichier XML, ajoutez dans le fichier XSL les éléments :
< xsl : choose > qui veut dire choisir  
 <xsl:when> qui veut dire lorsque
et < xsl : otherwise> qui veut dire

Exemple :

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>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Titre</th>
        <th>Artiste</th>
      </tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title"/></td>
        <xsl:choose>
          <xsl:when test="price &gt; 10">
            <td bgcolor="#ffff00">
            <xsl:value-of select="artist"/></td>
          </xsl:when>
          <xsl:otherwise>
            <td><xsl:value-of
  select="artist"/></td>
          </xsl:otherwise>
        </xsl:choose>
      </tr>
      </xsl:for-each>
    </table>
    </body>
    </html>
  </xsl:template>
  </xsl:stylesheet>

 

 Le code ci-dessus ajoutera une couleur jaune d'arrière-plan de la colonne « Artiste » lorsque le prix du CD est supérieur à 10.

Un autre exemple

Voici un autre exemple qui contient deux éléments  <xsl:when> :

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>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Titre</th>
        <th>Artiste</th>
      </tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title"/></td>
        <xsl:choose>
          <xsl:when test="price &gt; 10">
            <td bgcolor="#ffff00">
            <xsl:value-of select="artist"/></td>
          </xsl:when>
          <xsl:when test="price &gt; 9">
            <td bgcolor="#ff9900">
            <xsl:value-of select="artist"/></td>
          </xsl:when>
          <xsl:otherwise>
            <td><xsl:value-of
  select="artist"/></td>
          </xsl:otherwise>
        </xsl:choose>
      </tr>
      </xsl:for-each>
    </table>
    </body>
    </html>
  </xsl:template>
  </xsl:stylesheet>

 


Cours precedent:
cours precedent  Elément XSLT XSL if
    Sommaire de :
Le langage XML
 Cours suivant:
Elément XSLT xsl apply templates   cours suivant
Par carabde 10 mai 2014