<xsl:choose>-Element
Testet mehrere Bedingungen in Verbindung mit dem <xsl:otherwise>-Element und dem <xsl:when>-Element.
<xsl:choose>
</xsl:choose>
Elementinformationen
Anzahl der Vorkommen |
Unbegrenzt |
Übergeordnete Elemente |
xsl:attribute, xsl:comment, xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:processing-instruction, xsl:template, xsl:variable, xsl:when, xsl:with-param, Ausgabeelemente |
Untergeordnete Elemente |
Hinweise
Die untergeordneten <xsl:when>-Elemente des <xsl:choose>-Elements werden in absteigender Reihenfolge getestet, bis ein test-Attribut für eines dieser Element exakt die Bedingungen in den Quelldaten beschreibt, oder bis ein <xsl:otherwise>-Element erreicht wird. Wenn ein <xsl:when>-Element oder ein <xsl:otherwise>-Element ausgewählt wurde, wird der <xsl:choose>-Block beendet. Es ist keine explizite break-Anweisung oder exit-Anweisung erforderlich.
Verwenden Sie für einfache bedingte Tests das <xsl:if>-Element.
Beispiel
Im folgenden Beispiel wird eine Vorlage für <order>-Elemente veranschaulicht. Außerdem wird ein Größenindikator vor dem Inhalt von jedem <order>-Element eingefügt. Dieser Größenindikator basiert auf dem Wert des <total>-Elements innerhalb jedes <order>-Elements. Wenn die Summe kleiner ist als 10, wird der Text "(small)" hinzugefügt. Wenn die Summe kleiner ist als 20, wird der Text "(medium)" hinzugefügt. Wenn die Summe größer oder gleich 20 ist, wird der Text "(large)" hinzugefügt.
XML-Datei (order.xml)
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="refchoose.xsl" ?>
<orders>
<order>
<lineitem/>
<lineitem/>
<total>9</total>
</order>
<order>
<lineitem/>
<lineitem/>
<total>19</total>
</order>
<order>
<lineitem/>
<lineitem/>
<total>29</total>
</order>
</orders>
XSLT-Datei (refchoose.xsl)
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="order">
<xsl:choose>
<xsl:when test="total < 10">
(small)
</xsl:when>
<xsl:when test="total < 20">
(medium)
</xsl:when>
<xsl:otherwise>
(large)
</xsl:otherwise>
</xsl:choose>
<xsl:apply-templates />
<BR/>
</xsl:template>
</xsl:stylesheet>
Ausgabe
(small) 9
(medium) 19
(large) 29