<xsl:choose> 元素
与 <xsl:otherwise> 元素和 <xsl:when> 元素一同测试多个条件。
<xsl:choose>
</xsl:choose>
元素信息
注释
将按照从上到下的顺序测试 <xsl:choose> 元素的 <xsl:when> 子级,直到其中一个元素上的 test 属性准确地说明源数据中的条件,或直到遇到 <xsl:otherwise> 元素。在选择了 <xsl:when> 或 <xsl:otherwise> 元素之后,将退出 <xsl:choose> 块。不需要明确的中断或退出语句。
对于简单条件测试,请使用 <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