XSLT <xsl:kies> Element
Het element <xsl:choose> wordt gebruikt in combinatie met <xsl:when> en <xsl:otherwise> om meerdere voorwaardelijke tests uit te drukken.
Het <xsl:choose>-element
Syntaxis
<xsl:choose>
<xsl:when test="expression">
... some output ...
</xsl:when>
<xsl:otherwise>
... some output ....
</xsl:otherwise>
</xsl:choose>
Waar plaats je de kiesvoorwaarde
Om een meervoudige voorwaardelijke test tegen het XML-bestand in te voegen, voegt u de elementen <xsl:choose>, <xsl:when> en <xsl:otherwise> toe aan het XSL-bestand:
Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
<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 > 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>
De bovenstaande code voegt een roze achtergrondkleur toe aan de kolom "Artiest" WANNEER de prijs van de CD hoger is dan 10.
Een ander voorbeeld
Hier is nog een voorbeeld dat twee <xsl:when>-elementen bevat:
Voorbeeld
<?xml version="1.0" encoding="UTF-8"?>
<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 > 10">
<td bgcolor="#ff00ff">
<xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:when test="price > 9">
<td bgcolor="#cccccc">
<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>
De bovenstaande code voegt een roze achtergrondkleur toe aan de kolom "Artiest" WANNEER de prijs van de CD hoger is dan 10, en een grijze achtergrondkleur WANNEER de prijs van de CD hoger is dan 9 en lager of gelijk is aan 10.