<xsl:choose> 元素
測試多重條件時搭配使用 <xsl:otherwise> 及 <xsl:when> 項目。
<xsl:choose>
</xsl:choose>
項目資訊
備註
會以由上至下的順序,測試 <xsl:choose> 項目的 <xsl:when> 子系,直到其中一個項目的 test 屬性精確地說明來源資料中的條件,或到 <xsl:otherwise> 項目出現為止。 一旦選取 <xsl:when> 或 <xsl:otherwise> 項目,就會離開 <xsl:choose> 區塊。 不需執行明確的 Break 或 Exit 陳述式。
針對簡單的條件式測試,請使用 <xsl:if> 項目。
範例
下列範例說明 <order> 項目的範本,並會在每個 <order> 的內容之前插入大小指示器。 此大小指示器取決於每個 <order> 項目內的 <total> 項目值。 若總值小於 10,就會加入文字 "(small)"。 若總值小於 20,就會加入文字 "(medium)"。 若總值大於或等於 20,就會加入文字 "(large)"。
XML 檔 (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 檔 (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>
輸出
(small) 9
(medium) 19
(large) 29