XSLT <xsl:choose> -Element
Das Element <xsl:choose> wird in Verbindung mit <xsl:when> und <xsl:otherwise> verwendet, um mehrere bedingte Tests auszudrücken.
Das <xsl:choose>-Element
Syntax
<xsl:choose>
<xsl:when test="expression">
... some output ...
</xsl:when>
<xsl:otherwise>
... some output ....
</xsl:otherwise>
</xsl:choose>
Wo die Bedingung auswählen platziert werden soll
Um einen mehrfachen Bedingungstest gegen die XML-Datei einzufügen, fügen Sie der XSL-Datei die Elemente <xsl:choose>, <xsl:when> und <xsl:otherwise> hinzu:
Beispiel
<?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>
Der obige Code fügt der Spalte "Künstler" eine rosa Hintergrundfarbe hinzu, WENN der Preis der CD höher als 10 ist.
Ein anderes Beispiel
Hier ist ein weiteres Beispiel, das zwei <xsl:when>-Elemente enthält:
Beispiel
<?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>
Der obige Code fügt der Spalte "Künstler" eine rosa Hintergrundfarbe hinzu, WENN der Preis der CD höher als 10 ist, und eine graue Hintergrundfarbe, WENN der Preis der CD höher als 9 und niedriger oder gleich 10 ist.