Please visit our sponsors !
The <xsl:for-each> Element
The <xsl:for-each> element allows you to do looping in
XSL!
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 required select attribute contains an
XPath expression. It works like navigating a file system where a forward
slash (/) selects subdirectories.
The Result
The result of the transformation 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 |
If you have Netscape 6 or IE 5 or higher you can view:
the XML file and
the XSL file
View the result with Netscape 6 or IE 6
View the result with IE 5
Filtering the Output
We can filter the output from an XML file by adding a criteria 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
The result of the transformation will look like this:
My CD Collection
Title |
Artist |
Empire Burlesque |
Bob Dylan |
If you have Netscape 6 or IE 5 or higher you can view:
the XML file and
the XSL file.
View the result with Netscape 6 or IE 6
View the result with IE 5
Jump to: Top of Page
or HOME or
Printer friendly page
Search W3Schools:
What Others Say About Us
Does the world know about us? Check out these places:
Dogpile
Alta Vista
MSN
Google
Excite
Lycos
Yahoo
Ask Jeeves
We Help You For Free. You Can Help Us!
W3Schools is for training only. We do not warrant its correctness or its fitness for use.
The risk of using it remains entirely with the user. While using this site, you agree to have read and accepted our
terms of use and
privacy policy.
Copyright 1999-2002 by Refsnes Data. All Rights Reserved
|