Name
<xsl:choose>
The <xsl:choose>
element is XSLT’s
construct for if-then-else processing.
Category
Instruction.
Required Attributes
None.
Optional Attributes
None.
Content
Contains one or more <xsl:when>
elements. It can also
contain a single <xsl:
otherwise>
element. If it is present, the <xsl:otherwise>
element must be the
last element inside <xsl:choose>
.
Appears in
<xsl:choose>
appears
inside a template.
Defined in
[1.0] XSLT section 9.2, “Conditional
Processing with xsl:choose
.”
[2.0] XSLT section 8.2, “Conditional
Processing with xsl:choose
.”
Example
Here’s an example that uses <xsl:choose>
to select the background
color for the rows of an HTML table. We cycle among four different
values, using <xsl:choose>
to
determine the value of the style
attribute in the generated HTML document. Here’s the XML document
we’ll use:
<?xml version="1.0"?>
<!-- albums.xml -->
<list xml:lang="en">
<title>Albums I've bought recently:</title>
<listitem>The Sacred Art of Dub</listitem>
<listitem>Only the Poor Man Feel It</listitem>
<listitem>Excitable Boy</listitem>
<listitem xml:lang="sw">Aki Special</listitem>
<listitem xml:lang="en-gb">Combat Rock</listitem>
<listitem xml:lang="zu">Talking Timbuktu</listitem>
<listitem xml:lang="jz">The Birth of the Cool</listitem>
</list>
And here’s our stylesheet:
<?xml version="1.0"?>
<!-- choose.xsl --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="/"> <html> <head> <title> <xsl:value-of select="list/title"/> ...
Get XSLT, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.