XSLT <xsl:choose> 元素


<xsl:choose> 元素用于结合 <xsl:when> 和 <xsl:otherwise> 来表达多重条件测试。


<xsl:choose> 元素

语法

<xsl:choose>
<xsl:when test="expression">
... some output ...
</xsl:when>
<xsl:otherwise>
... some output ....
</xsl:otherwise>
</xsl:choose>


在何处放置选择条件

如需插入针对 XML 文件的多重条件测试,请向 XSL 文件添加 <xsl:choose>、<xsl:when> 以及 <xsl:otherwise> 元素:

实例

<? xml version = " 1.0 " encoding = " UTF-8 " ?> < xsl:stylesheet version = " 1.0 " xmlns:xsl = " http://www.w3.org/1999/XSL/Transform " > < xsl:template match = " / " > < html > < body > < h2 > My CD Collection </ h2 > < table border = " 1 " > < tr bgcolor = " #9acd32 " > < th > Title </ th > < th > Artist </ th > </ tr > < xsl:for-each select = " catalog/cd " > < tr > < td > < xsl:value-of select = " title " /> </ td > < xsl:choose > < xsl:when test = " price &gt; 10 " > < td bgcolor = " #ff00ff " > < xsl:value-of select = " artist " /> </ td > </ xsl:when > < xsl:otherwise > < td > < xsl:value-of select = " artist " /> </ td > </ xsl:otherwise > </ xsl:choose > </ tr > </ xsl:for-each > </ table > </ body > </ html > </ xsl:template > </ xsl:stylesheet >

尝试一下 »

上面的代码会在 CD 的价格高于 10 时向 "Artist" 列添加粉色的背景颜色。


另一个实例

这是另外一个包含两个 <xsl:when> 元素的实例:

实例

<? xml version = " 1.0 " encoding = " UTF-8 " ?> < xsl:stylesheet version = " 1.0 " xmlns:xsl = " http://www.w3.org/1999/XSL/Transform " > < xsl:template match = " / " > < html > < body > < h2 > My CD Collection </ h2 > < table border = " 1 " > < tr bgcolor = " #9acd32 " > < th > Title </ th > < th > Artist </ th > </ tr > < xsl:for-each select = " catalog/cd " > < tr > < td > < xsl:value-of select = " title " /> </ td > < xsl:choose > < xsl:when test = " price &gt; 10 " > < td bgcolor = " #ff00ff " > < xsl:value-of select = " artist " /> </ td > </ xsl:when > < xsl:when test = " price &gt; 9 " > < td bgcolor = " #cccccc " > < xsl:value-of select = " artist " /> </ td > </ xsl:when > < xsl:otherwise > < td > < xsl:value-of select = " artist " /> </ td > </ xsl:otherwise > </ xsl:choose > </ tr > </ xsl:for-each > </ table > </ body > </ html > </ xsl:template > </ xsl:stylesheet >

尝试一下 »

上面的代码会在 CD 的价格高于 10 时向 "Artist" 列添加粉色的背景颜色,并在 CD 的价格高于 9 且低于等于 10 时向 "Artist" 列添加灰色的背景颜色。