Élément <xsl:for-each> de XSLT
- Page précédente XSLT <value-of>
- Page suivante XSLT <xsl:sort>
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.
- Page précédente XSLT <value-of>
- Page suivante XSLT <xsl:sort>