共用方式為


<xsl:choose> 元素

測試多重條件時搭配使用 <xsl:otherwise> 及 <xsl:when> 項目。

<xsl:choose>
</xsl:choose>

項目資訊

發生次數

無限制

父項目

xsl:attributexsl:commentxsl:copyxsl:elementxsl:fallbackxsl:for-eachxsl:ifxsl:messagexsl:otherwisexsl:paramxsl:processing-instructionxsl:templatexsl:variablexsl:whenxsl:with-param、輸出項目

項目子系

xsl:otherwise, xsl:when

備註

會以由上至下的順序,測試 <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 &lt; 10">
         (small)
      </xsl:when>
      <xsl:when test="total &lt; 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