XSLT <xsl:choose> 元素

  • 定义和使用

    <xsl:choose> 元素与 <xsl:when> 以及 <xsl:otherwise> 表示多个条件测试。
    如果没有 <xsl:when> 是真的,内容 <xsl:otherwise> 已处理。
    如果没有 <xsl:when> 是真的,而且不是 <xsl:otherwise> 元素存在,不创建任何内容。
    提示:对于简单的条件测试,使用 <xsl:if> 元素。
  • 语法

    <xsl:choose>
      <!-- Content:(xsl:when+,xsl:otherwise?) -->
    </xsl:choose>
  • 参数

    属性 描述
  • 示例

    当CD的价格高于10时,下面的代码将为艺术家栏添加一个粉红色的背景色。
    <?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 > 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>
    声明一个名为 “color” 的变量。将其值设置为当前元素的 color 属性。如果当前元素没有 color 属性,“color” 的值将为 “green”:
    <xsl:variable name="color">
      <xsl:choose>
        <xsl:when test="@color">
          <xsl:value-of select="@color"/>
        </xsl:when>
        <xsl:otherwise>green</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>