Please visit our sponsors !
The <xsl:choose> Element
The <xsl:choose> element is used in conjunction with <xsl:when>
and <xsl:otherwise> to express multiple
conditional tests.
Where to put the Choose Condition
To insert a conditional choose test against the content of the XML file, simply add
the <xsl:choose>, <xsl:when>, and <xsl:otherwise> elements to your XSL document like this:
<xsl:choose>
<xsl:when test="price>'10'">
... some code ...
</xsl:when>
<xsl:otherwise>
... some code ....
</xsl:otherwise>
</xsl:choose>
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">
<tr>
<td><xsl:value-of select="title"/></td>
<xsl:choose>
<xsl:when test="price>'10'">
<td bgcolor="#ff00ff">
<xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:otherwise>
<td><xsl:value-of select="artist"/></td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
|
The code above will add a pink background-color to the artist column WHEN the
price of the cd is higher than 10.
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 Moore |
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
Note: Unable to view the result in IE 5, because the
"http://www.w3.org/TR/WD-xsl" namespace does not understand the <xsl:choose> element.
Another Example
Here is another example that contains several <xsl:when> elements:
<?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>
<xsl:choose>
<xsl:when test="price>'10'">
<td bgcolor="#ff00ff">
<xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:when test="price>'9' and price<='10'">
<td bgcolor="#cccccc">
<xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:otherwise>
<td><xsl:value-of select="artist"/></td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
|
The code above will add a pink background color to the artist column WHEN the
price of the cd is higher than 10, and a grey background-color WHEN the price of
the cd is higher than 9 and lower or equal to 10.
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 Moore |
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
Note: Unable to view the result in IE 5, because the
"http://www.w3.org/TR/WD-xsl" namespace does not understand the <xsl:choose> element.
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
|