XSLT入门 -- 第2章 基础篇: XSLT快速参考1 [转]

本文介绍了XSLT的基础知识,包括XPath的概述及其在XSLT中的作用,详细讲解了XSLT中的核心元素,如xsl:template、xsl:apply-templates、xsl:value-of等,并提供了相应的示例代码。
摘要由CSDN通过智能技术生成

1 前言

第1章中,我们用一个简单的XSLT样式表作为例子介绍了XSLT的概要。当然,XSLT所拥有的元素并不仅限于xsl:template、xsl:apply-templates、xsl:value-of。为了实行转换,XSLT准备了各种各样的元素。本章将以最常用的元素为中心举例说明。

另外,本文中并不准备介绍元素的全部属性。详情请参见W3C标准的原文[1]及译文[2]等。

在XSLT中经常会用到一种被称为XPath的描述方法。首先从XPath的概要开始介绍。

2 XPath是什么?

XPath是树结构的一种描述方法。在创建XSL样式表时经常使用XPath。

2.1 树结构

XML文档表示的数据组成数结构。用XLST进行转换,也就是从源文档的树(源树)生成转换后的树(目标树)的意思。这个转换以树结构的节点为基础来进行。

节点有几种,主要为:

  • 表示根的“根节点”
  • 表示元素的“元素节点”
  • 表示属性的“属性节点”
  • 表示文本的“文本节点”
  • 表示注释的“注释节点”

使用像这样的各种各样的节点来表示树的位置的描述方法称为XPath。

2.2 XPath表达式

创建XSLT样式表时经常使用的XPath表达式如表1所示。所谓的上下文节点,就是由上下文构成的节点,可以理解为“处理对象”。另外,今后会出现“当前节点”的概念,可以理解为“被选中的节点”。 1

表1: 常用的XPath表达式
记号 含义
a 上下文节点的a元素
* 上下文节点的所有元素
a/b 以上下文节点的a元素为父节点的b元素
a//b 以上下文节点的a元素为祖先的b元素
a|b 上下文节点的a元素和b元素
a[表达式] 符合表达式的上下文节点的a元素
. 上下文节点
.. 上下文节点的父节点
/ 根节点
@a 上下文节点的a属性
@* 上下文节点的所有属性
node() 所有节点
text() 文本节点
描述类似于UNIX的路径描述。例如,
<html>  <body>    <a href="sample.html">示例</a>    <ul>      <li>项目A</li>      <li>项目B</li>    </ul>  </body></html>
中,表示元素a的XPath表达式为
/html/body/a
此外,若表示a元素的href属性,则为
/html/body/a/@href
表中a[表达式]是符合表达式的a项目的意思,例如表示第一个li项目时使用
/html/body/ul/li[1]

3 定义样式表的元素

XSLT样式表使用XML文档的格式创建。因此,必须要遵从XML文档的描述规则。XML文档中必须存在的元素只有根元素。在XSLT样式表中的根元素就是xsl:stylesheet元素。基本代码如下所示:

<xsl:stylesheet  version = "版本号">  <!-- 内容: (xsl:import*, 顶层元素) --></xsl:stylesheet>

 

4 模板规则

XSLT样式表可以说是模板规则的集合。

4.1 模板规则的定义

模板规则使用xsl:template元素进行定义。它的属性包括match、name、priority和mode。其中最重要的是match属性,该属性规定了节点的样式。若没有指定name属性的话,就必须指定match属性。基本的代码如下所示。

<xsl:template   match = "样式"  name = "名称">  <!-- 内容: (xsl:param*, 模板) --></xsl:template>
name属性将在调用命名模板时使用。关于命名模版将在后面讲述。

 

4.2 应用模板规则

我们使用xsl:apply-template元素来应用模板规则。它包含select和mode属性。基本的代码如下所示:

<xsl:apply-templates  select = "节点集合表达式">  <!-- 内容: (xsl:sort | xsl:with-param)* --></xsl:apply-templates>
后面将
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值