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
Öppna XML filen Öppna XML konverterad till HTML (Även NS)
Observera att vi i likhet med xsl:if satte ett attribut i efterskott.