XSLT <xsl:for-each>Element


The <xsl:for-each> element allows you to loop in XSLT.


<xsl:for-each> Element

The XSL <xsl:for-each> element can be used to select every XML element of a specified node set:

Examples

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>My CD Collection</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>

Try it Yourself »

Note:selectThe value of the attribute is an XPath expression. This XPath expression works like locating a file system, in which forward slashes (/) select subdirectories.


Filtering the Output

By adding a criterion to the select attribute in the <xsl:for-each> element, we can also filter the output from the XML file.

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

Legal filter operators:

  • = (equal)
  • != (not equal)
  • &lt; (less than)
  • &gt; (greater than)

Take a look at the adjusted XSL stylesheet:

Examples

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>My CD Collection</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>

Try it Yourself »

Other Extensions