基本结构:
<xsl:choose>
<xsl:when test="条件表达式1">
<!-- 条件1成立时执行的转换规则 -->
</xsl:when>
<xsl:when test="条件表达式2">
<!-- 条件2成立时执行的转换规则 -->
</xsl:when>
<!-- 可以有多个<xsl:when>分支 -->
<xsl:otherwise>
<!-- 所有条件都不成立时执行的转换规则 -->
</xsl:otherwise>
</xsl:choose>
- <xsl:when> 元素:包含一个 test 属性,其中的 XPath 表达式用于判断是否满足相应条件,如果满足,则执行对应的转换规则。
- <xsl:otherwise> 元素:定义了所有 <xsl:when> 条件都不成立时要执行的转换规则。
示例:
考虑以下 XML 文档:
<book>
<title>Introduction to XSLT</title>
<price>30</price>
</book>
下面是一个使用 <xsl:choose> 元素的 XSLT 样式表的例子:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="book">
<div>
<h2><xsl:value-of select="title"/></h2>
<!-- 根据不同的价格范围输出不同的提示信息 -->
<xsl:choose>
<xsl:when test="price < 50">
<p>Standard Price</p>
</xsl:when>
<xsl:when test="price < 100">
<p>Special Offer!</p>
</xsl:when>
<xsl:otherwise>
<p>Discount Available!</p>
</xsl:otherwise>
</xsl:choose>
<p>Price: $<xsl:value-of select="price"/></p>
</div>
</xsl:template>
</xsl:stylesheet>
在这个例子中,<xsl:choose> 用于根据 <price> 元素的值,选择性地输出不同的提示信息。
注意事项:
- <xsl:choose> 元素内部可以包含多个 <xsl:when> 元素,但只会执行第一个满足条件的分支。
- <xsl:otherwise> 元素是可选的,用于定义所有条件都不成立时要执行的转换规则。
总体而言,<xsl:choose> 元素是 XSLT 样式表中用于处理多个条件分支的关键元素,使得在源 XML 文档的处理中可以选择性地应用不同的转换规则。
转载请注明出处:http://www.zyzy.cn/article/detail/12210/XML