XSLT <xsl:choose>Element


XSLT 元素参考手册XSLT Element Reference Manual

Definition and Usage

The <xsl:choose> element is used in conjunction with <xsl:when> and <xsl:otherwise> to express multiple conditional tests.

If no <xsl:when> is true, the content of <xsl:otherwise> is processed.

If no <xsl:when> is true and there is no <xsl:otherwise> element, no content is created.

Tip:For simple conditional tests, use the <xsl:if> element instead.


Syntax

<xsl:choose>

<!-- Content:(xsl:when+,xsl:otherwise?) -->

</xsl:choose>

Attributes

None


Example

The following code will add a pink background color to the artist column when the price of the CD is higher than 10.

Example

<?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 &gt; 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>

Try it Yourself »

Declare a variable named "color". Assign the value of this variable to the color attribute of the current element. If the current element has no color attribute, the value of "color" will be "green":

<xsl:variable name="color">
<xsl:choose>
<xsl:when test="@color">
<xsl:value-of select="@color"/>
</xsl:when>
<xsl:otherwise>green</xsl:otherwise>
</xsl:choose>
</xsl:variable>


XSLT 元素参考手册XSLT Element Reference Manual Other Extensions