XSLT <xsl:choose> Element
The <xsl:choose> element is used in conjunction with <xsl:when>
and <xsl:otherwise> to express multiple
conditional tests.
The <xsl:choose> Element
Syntax
<xsl:choose>
<xsl:when test="expression">
... some output ...
</xsl:when>
<xsl:otherwise>
... some output ....
</xsl:otherwise>
</xsl:choose>
|
Where to put the Choose Condition
To insert a multiple conditional test against the XML file, add
the <xsl:choose>, <xsl:when>, and <xsl:otherwise> elements to
the XSL file:
<?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 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 |
View the XML file,
View the XSL file, and
View the result
Another Example
Here is another example that contains two <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">
<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 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 |
View the XML file,
View the XSL file, and
View the result
 |
 |
 |
 |
|
The Ektron Intranet
lets you do everything you need to do on your corporate intranet and everything you want to do... all with just one application.
What can you do with the Ektron Intranet? |
 |
Navigate through content, documents, assets, colleagues and workgroups quickly and intuitively with enterprise search |
 |
Communicate with friends and colleagues with forums, message boards and corporate blogging using the new Social Networking Platform |

|
Utilize the extensive out-of-the box features or customize your site through Ektron CMS400.NET's open architecture |
 |
Promote collaboration in your organization through project workspaces where others can efficiently find information and work together |
 |
Author/edit content, manage navigation, menus, audit trails, workflow and approvals with the best in breed Content Management |
|
|
|
|
See why there are 20,000+ Ektron integrations worldwide.
|
|
 |
TAKE THE VIDEO TOUR |
 |
or download a FREE TRIAL today. |
|