Quick References
      ADO
      ASP
      CSS2
      HTML
      JavaScript
      Jet SQL
      VBScript
      WML
      WMLScript
      WSH
      XHTML
      XML DOM
      XSLT

Features
      Knowledge Base
      Tutorials

Partners
     ZVON.ORG
     XML
     Planet Source Code
     VisualBuilder
     Web Design
     Your HTML Source
     XML/XSLT Forums
     ASPAlliance
     Scripts
     
     Programmers Heaven
     Tek-Tips Forums
     Developer Fusion
     Code Project


   







ELEMENT:  xsl:choose

<xsl:choose>
  <xsl:when test="expression"> ... </xsl:when>
  ...
  <xsl:otherwise> ... </xsl:otherwise>
</xsl:choose>

 
The xsl:choose element is used to make a choice when there are two or more possible courses of action. It provides a means for conducting multiple conditions testing.
 
The xsl:choose element must contain one or more xsl:when elements and can contain only one optional xsl:otherwise element (which must occur after all of the xsl:when elements). If the xsl:choose element only contains one xsl:when element, then for all practical purposes, it behaves just like the xsl:if element. When faced with three or more choices, this element behaves like an if-then-else statement (or a Select Case) as found in numerous other computer languages.
 
Each xsl:when element is examined in the order of occurrence. If and when the conditions of the test expression are satisfied (returns True), the code contained in that element is executed. Then the xsl:choose element is automatically exited and all further xsl:when elements are ignored and are not tested. The optional xsl:otherwise element is also automatically ignored.
 
If none of the test conditions in any xsl:when element is satisfied (all return False), then the xsl:otherwise element is automatically selected (if it is present) and the code associated with that element is executed. If there is no xsl:otherwise element, then the xsl:choose element is exited.
 
This element has no attributes. It is not a self-closing tag. The separate closing element is mandatory.
 
We use the DevGuru Staff List XML file for our example with the following header:
<?xml-stylesheet type="text/xsl" href="xslt_example_choose.xsl"?>
and we name it: xslt_example_choose.xml
 
This example assigns font color based upon age.
 
Code for xslt_example_choose.xsl:
 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:for-each select="devguru_staff/programmer">
<xsl:choose>
<xsl:when test="age &lt; 30">
<span style="color:red;">
NAME: <xsl:value-of select="name" /> AGE: <xsl:value-of select="age" />
</span>
</xsl:when>
<xsl:when test="age &lt; 40">
<span style="color:orange;">
NAME: <xsl:value-of select="name" /> AGE: <xsl:value-of select="age" />
</span>
</xsl:when>
<xsl:when test="age &lt; 50">
<span style="color:green;">
NAME: <xsl:value-of select="name" /> AGE: <xsl:value-of select="age" />
</span>
</xsl:when>
<xsl:when test="age &lt; 60">
<span style="color:blue;">
NAME: <xsl:value-of select="name" /> AGE: <xsl:value-of select="age" />
</span>
</xsl:when>
<xsl:otherwise>
<span style="color:black;">
NAME: <xsl:value-of select="name" /> AGE: <xsl:value-of select="age" />
</span>
</xsl:otherwise>
</xsl:choose>
<br />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

 
Output:
 
Click to view output in separate window - requires Internet Explorer

 
 


Copyright 1999-2005 by Infinite Software Solutions, Inc. All rights reserved.
Trademark Information