<xsl:choose> 元素是 XSLT 样式表中的一个条件元素,用于处理多个条件分支。它允许在源 XML 文档的处理中选择性地执行一组转换规则,具体取决于一系列条件的成立与否。

基本结构:
<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 &lt; 50">
          <p>Standard Price</p>
        </xsl:when>
        <xsl:when test="price &lt; 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