
The XSLT <xsl:when> element provides a conditional test to use against the contents of an XML file within the scope a larger <xsl:choose> conditional evaluation.
<xsl:when> supports one attribute – test – which must return a Boolean value (true or false) through the application of a XPATH expression, or evaluation of a variable.
The <xsl:when> element cannot be used on its own; it must always be used together with the <xsl:choose> element. When used inside an <xsl:choose> then only the first <xsl:when> whose test evaluates to true will be processed.
If your intention is to evaluate a simple Boolean expression (and not a sequence of alternatives) and nothing else, then look into using the <xsl:if> element instead.
Syntax
<xsl:choose>
<xsl:when test="expression_1">
<!-- evaluated when expression_1 is true. -->
</xsl:when>
<xsl:when test="expression_2">
<!-- evaluated when expression_2 is true. -->
</xsl:when>
<!-- ... -->
<xsl:when test="expression_n">
<!-- evaluated when expression_n is true. -->
</xsl:when>
<xsl:otherwise>
<!-- evaluated when none of the preceding expressions are true.-->
</xsl:otherwise>
</xsl:choose>
<xsl:choose> contains one or more nested <xsl:when> elements and one optional <xsl:otherwise> element. Only the contents one <xsl:when> element is evaluated when its corresponding expression returns true; otherwise the <xsl:otherwise> content is evaluated if defined.
1: 2: <xsl:when select="expression">
3: <!-- Do something when evaluating to true. -->
4: </xsl:when>
5: 6: Attributes
| name | mandatory/optional | description |
| test | MANDATORY | an XPATH expression or variable reference which returns / represents a Boolean value (true or false). |
Examples
The <xsl:when> element must be used inside a <xsl:choose> element. Refer to the examples presented under <xsl:choose> for a better overview on how to use this function in an XSLT transform.
