XMLT

简介: XMLT

由于 XSL 样式表本身也是一个 XML 文档,因此它总是由 XML 声明起始:

<?xml version="1.0" encoding="ISO-8859-1"?>

<?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="/">
 <body>
//遍历匹配元素,转化为HTML
 </body>
 </html>
</xsl:template>
1.<xsl:templete></xsl:templete>

<xsl:template> 元素——<xsl:template>元素用于构建模板。

match 属性用于关联 XML 元素模板match 属性也可用来为整个文档定义模板。match 属性的值是 XPath 表达式(举例,match="/" 定义整个文档

2.<xsl:value-of> 元素

<xsl:value-of> 元素用于提取某个选定节点的值,并把值添加到转换的输出流中

<tr>
      <td><xsl:value-of select="catalog/cd/title"/></td>
      <td><xsl:value-of select="catalog/cd/artist"/></td>
</tr>
3. <xsl:for-each> 元素

<xsl:for-each> 元素可用于选取指定的节点集中的每个 XML 元素。

<xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title"/></td>
        <td><xsl:value-of select="artist"/></td>
      </tr>
      </xsl:for-each>

注释:select 属性的值是一个 XPath 表达式。此表达式的工作方式类似于定位某个文件系统,在其中正斜杠可选择子目录。

结果过滤

通过在 <xsl:for-each> 元素中添加一个选择属性的判别式,我们也可以过滤从 XML 文件输出的结果。

合法的过滤运算符:

=  (等于)

!= (不等于)

< (小于)

> (大于)

<xsl:for-each select="catalog/cd[artist='Bob Dylan']">
4.<xsl:sort> 元素

<xsl:sort> 元素用于对结果进行排序。

如需对结果进行排序,只要简单地在 XSL 文件中的 <xsl:for-each> 元素内部添加一个 <xsl:sort>元素:

<xsl:for-each select="catalog/cd">
      <xsl:sort select="artist"/>
      <tr>
        <td><xsl:value-of select="title"/></td>
        <td><xsl:value-of select="artist"/></td>
      </tr>
</xsl:for-each>
5.<xsl:if> 元素

<xsl:if> 元素用于放置针对 XML 文件内容的条件测试。

如需放置针对 XML 文件内容的条件测试,请向 XSL 文档添加<xsl:if> 元素。

语法

<xsl:if test="expression">

...

...如果条件成立则输出...

...

</xsl:if>

<xsl:for-each select="catalog/cd">
      <xsl:if test="price &gt; 10">
        <tr>
          <td><xsl:value-of select="title"/></td>
          <td><xsl:value-of select="artist"/></td>
        </tr>
      </xsl:if>
      </xsl:for-each>
6. <xsl:choose> 元素

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

语法

<xsl:choose>

<xsl:when test="expression">

... 输出 ...

</xsl:when>

<xsl:otherwise>

... 输出 ....

</xsl:otherwise>

</xsl:choose>

<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>
7.  <xsl:apply-templates> 元素

<xsl:apply-templates> 元素可把一个模板应用于当前的元素或者当前元素的子节点**

<xsl:apply-templates> 元素

<xsl:apply-templates> 元素可把一个模板应用于当前的元素或者当前元素的子节点。

假如我们向 <xsl:apply-templates> 元素添加一个 select 属性,此元素就会仅仅处理与属性值匹配的子元素。我们可以使用 select 属性来规定子节点被处理的顺序

<?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> 
    <xsl:apply-templates/> 
</body>
</html>
</xsl:template>
<xsl:template match="cd">
<p>
    <xsl:apply-templates select="title"/> 
    <xsl:apply-templates select="artist"/>
</p>
</xsl:template>
<xsl:template match="title">
    Title: <span style="color:#ff0000">
    <xsl:value-of select="."/></span>
    <br />
</xsl:template>
<xsl:template match="artist">
      Artist: <span style="color:#00ff00">
    <xsl:value-of select="."/></span>
    <br />
</xsl:template>
</xsl:stylesheet




目录
相关文章
|
消息中间件 缓存 NoSQL
Redis学习笔记-如何解决缓存和数据库的数据不一致
Redis学习笔记-如何解决缓存和数据库的数据不一致
189 0
|
Prometheus Kubernetes API
pod的扩缩容详解
主要讲解pod的扩缩容的一些概念及案例
706 0
pod的扩缩容详解
|
弹性计算 运维 监控
1-5-10 快恢在数字化安全生产平台 DPS 中的设计与落地
11 月 5 日,在 2022 杭州 · 云栖大会上,数字化安全生产平台 DPS 重磅发布,助力传统运维向 SRE 转型,在数字化安全生产平台 DPS 重磅发布中提到了 DPS 诞生的背景,希望解决的企业问题以及核心的功能点,其中提到了 DPS 目前的两大业务场景:"1-5-10"故障快恢和"变更三板斧"故障预防,本文将阐述 “1-5-10”故障快恢场景的背后的设计与实现。
1-5-10 快恢在数字化安全生产平台 DPS 中的设计与落地
|
搜索推荐 算法 API
阿里巴巴商品推荐API接口
阿里巴巴是一家全球知名的电子商务公司,其商品推荐API接口是一种非常有用的工具,可以帮助商家和开发者更轻松地推荐商品给消费者。在本文中,我们将介绍阿里巴巴商品推荐API接口的工作原理、应用场景和优势。
371 0
|
Arthas 运维 监控
线上故障突突突?如何紧急诊断、排查与恢复
稳定性大于一切,因此我们需要有更有效的方式避免线上故障。在发生故障不可避免的假设下,我们需要能够快速修复,减少线上影响。基于以上这些想法,我们提出了1-5-10的快恢目标,所谓 1-5-10 的目标就是是要我们对于线上问题能够做到1分钟发现,5分钟定位,10分钟修复。
线上故障突突突?如何紧急诊断、排查与恢复
|
Java
java获取当前时间的前一个小时
java获取当前时间的前一个小时
485 0
|
Java Shell Linux
Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环
“{}”在linux shell里面表示生成序列、在for循环中$*和$@的区别、注意事项: ①[ 条件判断式 ],中括号和条件判断式之间必须有空格②if 后要有空格、在中括号里面的话就不用&&(||)而是用-a(-and)(和-o(-or))、用逻辑与&&逻辑或||连接(单分支)(1)case 行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。(2)双分号“;;”表示命令序列结束,相当于 java 中的 break。 (3)最后的“*)”表示默认模式,相当于 java 中的 default。当
233 1
Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环
|
SQL 运维 资源调度
大数据CDH集群安装实录
通过ClouderaManager管理CDH集群,从而为大数据集群做统一管理,在整个大数据集群运维的角度来说,提供了很多便利点。
642 0
大数据CDH集群安装实录
|
存储 缓存 分布式计算
高可用高并发的 9 种技术架构!
分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对简单并比较单一的职责,然后通过上层对下层的依赖和调度组成一个完整的系统。
高可用高并发的 9 种技术架构!
|
运维 安全 容灾
阿里云混合云Apsara Stack 2.0发布 加速政企数智创新
2021年10月21日,杭州 – 今日,阿里云于云栖大会正式发布Apsara Stack 2.0,从面向单一私有云场景,升级为服务大型集团云&行业云场景。新一代Apsara Stack不仅可以为政企定制稳定、安全、开放、智能的数字底座,实现智能管理和自动化运维,并可构建成为自主运营的“行业专有公共云”,更面向产业互联网时代提供了云边一体完整方案,做好政企数智创新的同行者。
1201 0
阿里云混合云Apsara Stack 2.0发布  加速政企数智创新