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.

 
Free Stylus Studio XML Training: