Provides multiple conditional testing in conjunction with the <xsl:choose> and <xsl:otherwise> elements.
<xsl:when test = boolean expression> </xsl:when>
Number of occurrences | Unlimited |
Parent elements | xsl:choose |
Child elements | xsl:apply-templates, xsl:attribute, xsl:choose, xsl:comment, xsl:copy, xsl:copy-of, xsl:element, xsl:for-each, xsl:if, xsl:processing-instruction, xsl:value-of, xsl:variable, output elements |
Describes one of the alternatives to be chosen by the <xsl:choose> element. The default alternative is described by the <xsl:otherwise> element.
For simple conditional testing, use the <xsl:if> element.
This example shows a template for "order" elements and inserts an <HR> or <BR> before the order's contents, based on the order's "total" element value. If the total is less than 10, a red <HR> will be generated; if the total is less than 20, a pink <HR> will be generated; otherwise a <BR> element will be created.
<xsl:template match="order"> <xsl:choose> <xsl:when test="total < 10"> <HR STYLE="color:red"/> </xsl:when> <xsl:when test="total < 20"> <HR STYLE="color:pink"/> </xsl:when> <xsl:otherwise> <BR/> </xsl:otherwise> </xsl:choose> <xsl:apply-templates /> </xsl:template>