XSLT <xsl:for-each> Element
The <xsl:for-each> element allows you to do looping in
XSLT.
The <xsl:for-each> Element
The XSL <xsl:for-each> element can be used to select every XML
element of a specified node-set:
<?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>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>
|
Note: The value of the select attribute is an XPath
expression.
An XPath expression works like navigating a file system; where a forward slash (/) selects subdirectories.
The result of the transformation above will look like this:
My CD Collection
| Title |
Artist |
| Empire Burlesque |
Bob Dylan |
| Hide your heart |
Bonnie Tyler |
| Greatest Hits |
Dolly Parton |
| Still got the blues |
Gary More |
| Eros |
Eros Ramazzotti |
| One night only |
Bee Gees |
| Sylvias Mother |
Dr.Hook |
| Maggie May |
Rod Stewart |
| Romanza |
Andrea Bocelli |
| When a man loves a woman |
Percy Sledge |
| Black angel |
Savage Rose |
| 1999 Grammy Nominees |
Many |
| For the good times |
Kenny Rogers |
| Big Willie style |
Will Smith |
| Tupelo Honey |
Van Morrison |
| Soulsville |
Jorn Hoel |
| The very best of |
Cat Stevens |
| Stop |
Sam Brown |
| Bridge of Spies |
T`Pau |
| Private Dancer |
Tina Turner |
| Midt om natten |
Kim Larsen |
| Pavarotti Gala Concert |
Luciano Pavarotti |
| The dock of the bay |
Otis Redding |
| Picture book |
Simply Red |
| Red |
The Communards |
| Unchain my heart |
Joe Cocker |
View the XML file,
View the XSL file, and
View the result
Filtering the Output
We can also filter the output from the XML file by adding a criterion to the
select attribute in
the <xsl:for-each> element.
<xsl:for-each select="catalog/cd[artist='Bob Dylan']">
Legal filter operators are:
- = (equal)
- != (not equal)
- < less than
- > greater than
Take a look at the adjusted XSL style sheet:
<?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>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>
|
The result of the transformation above will look like this:My CD Collection
| Title |
Artist |
| Empire Burlesque |
Bob Dylan |
View the XML file,
View the XSL file,
View the result
Want To Be A Web Master?
If you want to be a Web Master, you will have to host your web site with an ISP (Internet Service Provider).
MaximumASP offers seven different configurations of dedicated servers to meet your Windows and .NET hosting needs.
Hosted on our multi-tiered Enterprise Class network, these servers provide the performance, security and reliability
you need to host your high end web sites and applications.
Visit MaximumASP
|