Click to return to the XML (Extensible Markup Language) home page    
xsl:value-of Element     XSL Elements    
Web Workshop  |  XML (Extensible Markup Language)

xsl:when Element


Provides multiple conditional testing in conjunction with the xsl:choose and xsl:otherwise elements.

Syntax

<xsl:when
    expr="script-expression"
    language="language-name"
    test="pattern"  >

Attributes

expr
Script expression evaluating to a Boolean. If this expression returns TRUE, and the test pattern succeeds, the contents of xsl:when are placed in the output. If one of these tests fails, the next xsl:when or xsl:otherwise in the xsl:choose block is tested.
language
Active Scripting language used for the expression in the expr attribute. If left unspecified, the current scripting language is used, as specified by a language attribute on an ancestor. If no such attribute exists, JScript® (compatible with ECMA 262 language specification) is used. This attribute accepts the same values as the language attribute on the HTML SCRIPT element.
test
XSL pattern to be tested against the current context. The default value is ".", which indicates evaluation of the current node and thus is always true. For a complete description, see XSL Pattern Syntax.

Element Information

Number of occurrences Unlimited
Parent elements xsl:choose
Child elements xsl:apply-templates, xsl:attribute, xsl:choose, xsl:comment, xsl:copy, xsl:element, xsl:eval, xsl:for-each, xsl:if, xsl:pi, xsl:value-of
Requires closing tag Yes. XSL is an XML grammar and, like all XML grammars, all tags must have closing tags to satisfy the definition of well-formed.

Remarks

Describes one of the alternatives to be chosen by the xsl:choose. The default alternative is described by the xsl:otherwise element.

For simple conditional testing, use the xsl:if element.

Example

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[. $lt$ 10]">
      <HR STYLE="color:red"/>
    </xsl:when>
    <xsl:when test="total[. $lt$ 20]">
      <HR STYLE="color:pink"/>
    </xsl:when>
    <xsl:otherwise>
      <BR/>
    </xsl:otherwise>
  </xsl:choose>
  <xsl:apply-templates />
</xsl:template>

See Also

Conditional Templates, Influencing Transformations Through Script



Back to topBack to top

Did you find this topic useful? Suggestions for other topics? Write us!

© 1999 Microsoft Corporation. All rights reserved. Terms of use.