`

XSLT <xsl:choose> 元素

    博客分类:
  • XML
阅读更多
XSLT <xsl:choose> 元素
Previous Page Next Page XSLT <xsl:choose> 元素用于结合 <xsl:when> 和 <xsl:otherwise> 来表达多重条件测试。
<xsl:choose> 元素
语法
<xsl:choose>
  <xsl:when test="expression">
    ... 输出 ...
  </xsl:when>
  <xsl:otherwise>
    ... 输出 ....
  </xsl:otherwise>
</xsl:choose>在何处放置选择条件
要插入针对 XML 文件的多重条件测试,请向 XSL 文件添加 <xsl:choose>、<xsl:when> 以及 <xsl:otherwise>:

<?xml version="1.0" encoding="ISO-8859-1"?>
<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" 列添加粉色的背景颜色。

上面的转换结果类似这样:

查看此 XML 文件,查看此 XSL 文件,查看结果。
另一个例子
这是另外一个包含两个 <xsl:when> 元素的例子:

<?xml version="1.0" encoding="ISO-8859-1"?>
<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" 列添加灰色的背景颜色。

上面的转换结果类似这样:

查看此XML文件,查看此XSL文件,查看结果。
分享到:
评论

相关推荐

    XSL基础教程 从 XSLT 样式表调用 JavaScript

    1. **XSLT语法**:学习基本的XSLT元素,如`&lt;xsl:template&gt;`、`&lt;xsl:for-each&gt;`、`&lt;xsl:if&gt;`和`&lt;xsl:choose&gt;`,以及如何使用XPath表达式选择和操作XML节点。 2. **模板匹配**:掌握如何通过模式匹配来指定何时应用...

    xslt元素使用说明

    XSLT还包含了更多其他元素和功能,例如 `&lt;xsl:decimal-format&gt;`、`&lt;xsl:element&gt;`、`&lt;xsl:key&gt;` 等等。每个元素都有其独特的用途,了解它们可以帮助开发人员更高效地进行XML数据的转换和处理。接下来将继续介绍更多...

    Xslt语法参考手册.pdf

    当在一个XSLT样式表中使用 `&lt;xsl:import&gt;` 元素导入另一个样式表时,该元素可以被用来调用导入样式表中的模板。 - **语法**:`&lt;xsl:apply-imports/&gt;` - **属性**:无 - **示例**: ```xml &lt;?xml version="1.0" ...

    xsl.rar_xsl_xsl 参考手册_xslt_xslt用法

    4. **条件语句(Conditional Statements)**:如`&lt;xsl:if&gt;`和`&lt;xsl:choose&gt;`,根据条件决定是否处理某个节点。 5. **迭代循环(Loops)**:`&lt;xsl:for-each&gt;`用于遍历节点集合,对每个节点执行指定的操作。 6. **变量...

    xml+xsl中分割字符

    在这个XSLT样式表中,定义了两个主要的模板:一个是匹配`&lt;data_info&gt;`元素的模板,另一个是执行字符串分割的自定义模板`splitStr`。 - 在`&lt;data_info&gt;`模板中,通过调用`splitStr`模板并传递`@CC_ID`属性的值和控制...

    【学习 XSLT】.pdf

    1. `&lt;xsl:stylesheet&gt;`:这是XSLT文档的根元素,包含了所有转换规则。 2. `&lt;xsl:template&gt;`:定义处理XML元素的方式,`match`属性用于指定匹配的XML元素。 3. `&lt;xsl:value-of&gt;`:用于提取并输出XML元素的文本内容。 ...

    XML应用开发(软件品牌)-1期 5.4案例分析-使用XSL流程控制语言.doc

    `&lt;xsl:choose&gt;`是容器元素,`&lt;xsl:when&gt;`表示一个条件分支,`&lt;xsl:otherwise&gt;`用于捕获所有未匹配的条件。例如,在案例2(element-choose.xslt)中,不同类别的图书会显示不同的背景色。其基本结构如下: ```xml ...

    xsl使用示例代码

    5. **条件语句和循环(Conditional Statements & Loops)**:XSLT支持条件语句(如`&lt;xsl:if&gt;`和`&lt;xsl:choose&gt;`)以及循环(如`&lt;xsl:for-each&gt;`),使我们能够基于数据的条件来控制输出。 6. **输出指令(Output ...

    XSL文档资料 pdf

    - `&lt;xsl:stylesheet&gt;`:定义XSLT文档的根元素。 - `&lt;xsl:template&gt;`:定义如何处理特定的XML节点。 - `&lt;xsl:value-of&gt;`:用于输出节点的值。 - `&lt;xsl:for-each&gt;`:用于遍历一组节点。 - `&lt;xsl:sort&gt;`:用于对节点...

    XSLT使用的例子

    - **筛选和排序**:XSLT可以通过条件判断(如`&lt;xsl:if&gt;`和`&lt;xsl:choose&gt;`)来选择性地输出元素,或者使用`&lt;xsl:sort&gt;`对元素进行排序。 - **重复和循环**:使用`&lt;xsl:for-each&gt;`可以遍历XML文档中的节点集合,实现...

    xsl学习

    4. **选择和条件语句**:`&lt;xsl:if&gt;`和`&lt;xsl:choose&gt;`、`&lt;xsl:when&gt;`、`&lt;xsl:otherwise&gt;`用于基于条件进行不同的处理。 5. **函数库**:XSLT提供了一系列内置函数,如字符串处理、数值计算、节点操作等。此外,还...

    xsl学习笔记,入门知识

    在实际应用中,你可能还会遇到条件判断(`&lt;xsl:if&gt;`和`&lt;xsl:choose&gt;`)、循环(`&lt;xsl:for-each&gt;`)、变量(`&lt;xsl:variable&gt;`和`&lt;xsl:param&gt;`)以及导入和包含其他样式表(`&lt;xsl:import&gt;`和`&lt;xsl:include&gt;`)等功能。...

    XSLT经典教程.doc

    XSLT元素是XSLT语言的基本组成部分,包括&lt;xsl:template&gt;、&lt;xsl:value-of&gt;、&lt;xsl:for-each&gt;、&lt;xsl:sort&gt;、&lt;xsl:if&gt;、&lt;xsl:choose&gt;等。XSLT函数是XSLT语言中的一种内置函数,总共有超过100个,包括字符串、数值、日期...

    xslt介绍

    7. `&lt;xsl:choose&gt;` 和 `&lt;xsl:when&gt;`、`&lt;xsl:otherwise&gt;` 元素:提供多分支选择。`&lt;xsl:choose&gt;`包含一系列`&lt;xsl:when&gt;`,每个`&lt;xsl:when&gt;`有自己的`test`属性,当测试条件满足时执行相应内容。若所有`&lt;xsl:when&gt;`都...

    XSLT从入门到精通 pdf

    6. **条件语句**: `&lt;xsl:if&gt;`、`&lt;xsl:choose&gt;`和`&lt;xsl:when&gt;`用于基于条件执行不同的处理逻辑。 7. **循环**: `&lt;xsl:for-each&gt;`用于遍历XML集合中的每一个节点,执行指定的操作。 8. **模板继承与覆盖**: 模板可以...

    xslt与xpath入门转换xml文档与数据

    11. **条件处理**:XSLT提供了`&lt;xsl:if&gt;`和`&lt;xsl:choose&gt;`元素来进行条件判断,根据不同的情况执行不同的转换。 学习并熟练运用XSLT和XPath,能够有效地管理和转换XML数据,从而在数据处理、网页渲染、数据集成等...

    xslt例子(转换修改xml)

    4. **条件语句**:`&lt;xsl:if&gt;`和`&lt;xsl:choose&gt;`、`&lt;xsl:when&gt;`、`&lt;xsl:otherwise&gt;`组合用于条件判断。它们可以根据条件决定是否执行某段代码。 5. **循环**:`&lt;xsl:for-each&gt;`用于遍历XML文档中的节点集。可以用来...

    XSL中进行字符串替换

    &lt;xsl:choose&gt; &lt;xsl:when test="contains($SrcString, $FromString)"&gt; &lt;!-- 找到子字符串,先输出前面的部分 --&gt; &lt;xsl:value-of select="substring-before($SrcString, $FromString)"/&gt; &lt;!-- 输出替换后的子字符...

Global site tag (gtag.js) - Google Analytics