xsl:choose
Syntax:
 
  <xsl:choose>
       <xsl:when test="pattern">
          ...
       </xsl:when> 
       <xsl:when test="pattern"> 
          ...
       </xsl:when> 
       <xsl:otherwise> 
          ...
       </xsl:otherwise> 
    </xsl:choose>
   
Detta är det närmaste en If...Else...EndIf vi kommer, även om 
  den nog mer påminner om case i vb eller switch C mm.
Om vi bara har en enda xsl:when och en xsl:otherwise, kan vi dock jämföra 
  med en Else If.
  
Ett lite mer avancerat exempel på choose:
xml22_1.xsl
<?xml version='1.0' encoding="iso-8859-1" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
  	<head><title>Racing</title></head>
  	<body bgcolor="#FFFFFF" text="#000000">
    		<table>
    		<xsl:for-each select="racers/driver">
      			<tr>
      			<xsl:choose>
        				<xsl:when test="nationality[. = 'Finn']">
          					<xsl:attribute name="style">background-color:#FFFFCC</xsl:attribute>
        				</xsl:when>
        				<xsl:otherwise>
          					<xsl:attribute name="style">background-color:#CCFFFF</xsl:attribute>
        				</xsl:otherwise>
      			</xsl:choose>
      			<td><xsl:value-of select="name"/></td>
      			
      			<td><xsl:value-of select="nationality"/></td>
      			
      			<td>
        				<xsl:if test="@type[. = 'rally']">
        				    <xsl:attribute name="style">color:#FF0000</xsl:attribute>	
      			</xsl:if>
      			
      			<xsl:value-of select="@type"/></td>
      			
      			</tr>
    		</xsl:for-each>
    		</table>
  	</body>
</html>
</xsl:template>
</xsl:stylesheet>
 Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
 Öppna XML filen   Öppna XML konverterad till HTML (Även NS)
Öppna XML filen   Öppna XML konverterad till HTML (Även NS)
Observera att vi i likhet med xsl:if satte ett attribut i efterskott.