xsl:choose

Selects one template to instantiate from a group of templates.

Format

<xsl:choose>
               

              
<xsl:when test="expression1">
                   
template_body 
                   
</xsl:when>
                   
[<xsl:when test="expression2">
                   
template_body 
                   
</xsl:when>] ...
                   
[<xsl:otherwise>
                   
template_body  
                   
</xsl:otherwise>]
                   

                
</xsl:choose>

Description

An xsl:choose element contains one or more xsl:when elements followed by zero or one xsl:otherwise element. Each xsl:when element contains a required test attribute, whose value is an expression. Each xsl:when and xsl:otherwise element contains a template.

When the XSLT processor processes an xsl:choose element, it starts by evaluating the expression in the first xsl:when element. The XSLT processor converts the result to a Boolean value. If the result is true, the XSLT processor instantiates the template contained by that xsl:when element. If the result is false, the XSLT processor evaluates the expression in the next xsl:when element.

The XSLT processor instantiates the template of only the first xsl:when element whose test expression evaluates to true. If no expressions evaluate to true and there is an xsl:otherwise element, the XSLT processor instantiates the template in the xsl:otherwise element.

If no expressions in xsl:when elements are true and there is no xsl:otherwise element, the xsl:choose element has no effect.

Tip

 

You can create an xsl:choose element automatically using the XSLT mapper.

 
Free Stylus Studio XML Training: