Élément <xsl:for-each> de XSLT

L'élément <xsl:for-each> permet de faire des boucles dans l'XSLT.

Élément <xsl:for-each>

L'élément <xsl:for-each> peut être utilisé pour sélectionner chaque élément XML dans un ensemble de nœuds spécifié.

<?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>Title</th>
        <th>Artist</th>
      </tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title"/></td>
        <td><xsl:value-of select="artist"/></td>
      </tr>
      </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

Remarque :select La valeur de l'attribut est une expression XPath. Cette expression fonctionne de manière similaire à la localisation d'un système de fichiers, où le slash oblique peut sélectionner les sous-répertoires.

Le résultat de la conversion est similaire à cela :

Voir ce fichier XML,Voir ce fichier XSLetVoir les résultats.

Filtrage des résultats

En ajoutant un critère de sélection à l'élément <xsl:for-each>, nous pouvons également filtrer les résultats de la sortie du fichier XML.

<xsl:for-each select="catalog/cd"[artist='Bob Dylan']">

Opérateurs de filtrage valides:

  • =  (égal)
  • != (différent)
  • < (inférieur)
  • > (supérieur)
<?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>Title</th>
      <th>Artist</th>
   </tr>
   <xsl:for-each select="catalog/cd[artist='Bob Dylan']">
   <tr>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="artist"/></td>
   </tr>
   </xsl:for-each>
  </table>
 </body>
 </html>
</xsl:template>
</xsl:stylesheet>

Le résultat de la conversion est similaire à cela :

Voir ce fichier XML,Voir ce fichier XSL,Et regardez les résultats.