L'élément <xsl:for-each> permet d'appliquer des règles de style sur chaque noeud identique d'un template.

Les noeuds sont identifiés par un pattern spécifié par un attribut select d'ailleurs obligatoire.

<xsl:for-each select="pattern">
   instructions...
</xsl:for-each>
Les attributs :
Attribut Description
select="pattern" permet de sélectionner une série de noeuds dans un template.

Evidemment, cet élément ne peut être employé que sur une arborescence dont la structure soit uniforme et connue tel que par exemple un document XML formé à partir de titres et de paragraphes.

Cet élément peut être contenu dans les instructions suivantes :

Cet élément peut contenir les instructions suivantes :

Exemple : [voir]
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" 
                        xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" media-type="text/html; charset=ISO-8859-1"/>
  <xsl:template match="/">
  <html>
      <head>
        <title>
        La logithèque : les <xsl:value-of 
                         select="/logitheque/categorie[position()=6]/@nom"/>
        </title>
      </head>
      <body>
        <table border="1">
        <tr>
          <th>Logiciel</th>
          <th>Editeur</th>
          <th>Lien</th>
        </tr>
        <xsl:for-each 
                      select="/logitheque/categorie[position()=6]/logiciel">
          <tr>
            <td>
              <xsl:value-of select="nom"/>
            </td>
            <td>
              <xsl:value-of select="editeur"/>
            </td>
            <td>
              <xsl:choose>
                <xsl:when test="editeur/@lien != ''">
                  <xsl:variable name="url" select="editeur/@lien"/>
                  <xsl:value-of select="$url"/>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:variable name="url">URL indisponible</xsl:variable>
                  <xsl:value-of select="$url"/>
                </xsl:otherwise>
              </xsl:choose>
            </td>
          </tr>
        </xsl:for-each>
        </table>
      </body>
  </html>
  </xsl:template>
</xsl:stylesheet>
En savoir plus :
Découvrez cet élément sur le site du W3CDécouvrez cet élément sur le site de Microsoft