XSLT <xsl:choose> Element

From http://www.w3schools.com (Copyright Refsnes Data)

# XSLT <xsl:choose> Element

Complete XSLT Element Reference

## Definition and Usage

The <xsl:choose> element is used in conjunction with <xsl:when> and <xsl:otherwise> to express multiple conditional tests.

If no <xsl:when> is true, the content of <xsl:otherwise> is processed.

If no <xsl:when> is true, and no <xsl:otherwise> element is present, nothing is created.

Tip: For simple conditional testing, use the <xsl:if> element instead.

## Syntax

    <xsl:choose>

    <!-- Content:(xsl:when+,xsl:otherwise?) -->

    </xsl:choose>

## Attributes

None

### Example 1

The code below will add a pink background-color to the artist column WHEN the price of the CD is higher than 10.

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="/">
      <html>
      <body>
        <h2>My CD Collection</h2>
        <table border="1">
          <tr bgcolor="#9acd32">
            <th>Title</th>
            <th>Artist</th>
          </tr>
          <xsl:for-each select="catalog/cd">
          <tr>
            <td><xsl:value-of select="title"/></td>
          	<xsl:choose>
              <xsl:when test="price &gt; 10">
                <td bgcolor="#ff00ff">
                <xsl:value-of select="artist"/></td>
              </xsl:when>
              <xsl:otherwise>
                <td><xsl:value-of select="artist"/></td>
              </xsl:otherwise>
            </xsl:choose>
          </tr>
          </xsl:for-each>
        </table>
      </body>
      </html>
    </xsl:template>

    </xsl:stylesheet>

View the XML file, View the XSL file, and View the result.

### Example 2

Declare a variable named "color". Set its value to the color attribute of the current element. If the current element has no color attribute, the value of "color" will be "green":

    <xsl:variable name="color">
      <xsl:choose>
        <xsl:when test="@color">
          <xsl:value-of select="@color"/>
        </xsl:when>
        <xsl:otherwise>green</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>

Complete XSLT Element Reference

From http://www.w3schools.com (Copyright Refsnes Data)