<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