O'Reilly logo

XSLT, 2nd Edition by Doug Tidwell

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Name

<xsl:when>

Defines one branch of an <xsl:choose> element; <xsl:choose> is equivalent to an if-then-else statement.

Category

Subinstruction (<xsl:when> always appears as a child of an <xsl:choose> element).

Required Attribute

test

Contains a boolean expression that is evaluated. If the expression evaluates to true, the contents of the <xsl:when> element are processed; otherwise, the contents of <xsl:when> are ignored. When evaluating an <xsl:choose> element, the XSLT processor examines each <xsl:when> until it finds one whose test attribute evaluates to true. That <xsl:when> element is processed and all subsequent <xsl:when> elements are ignored. Within an <xsl:choose> element, at most one <xsl:when> element will be processed.

Optional Attributes

None.

Content

An XSLT template.

Appears in

The <xsl:choose> element only.

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:when> 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> ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required