曝光台 注意防骗
网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者
• 处理多个元素
• 用表达式选择节点
• 理解缺省的模板规则
• 确定输出要包含的内容
• 复制当前节点
• 对节点进行计数、对输出元素分类以及插入CDATA 和<符号
• 设置模式特性
• 定义并创建命名模板
• 删除和保留空格
• 基于输入来改变输出
• 合并多个样式单
14.1 何为XSL?
变换和格式两部分可相互独立地起作用。例如,变换语言可将XML 文档变换成结构整洁的HTML 文件,并且完全忽略XSL 格
式化对象。Internet Explorer 5.0 支持这种XSL 样式,这在第5 章已讨论过,本章着重讨论这种样式。
此外,以XSL 格式化对象编写的文档,并非绝对要求在另一个XML 文档上使用XSL 变换部分才能产生。例如,很容易想象到
这样的一个转换器:它是用Java 语言写成的,可读取TeX 或PDF 文件,并把这些文件翻译成XSL 格式化对象(尽管直到1999
年夏天仍没有这样的一种转换器存在)。
实际上,XSL 是两种语言,而不是一种。第一种语言是变换语言,第二种是格式化语言。变换语言是一种很有用的语言,它
与格式化语言无关。它能够把数据从一种XML 表示移到另一种表示,这种功能,使它成为基于XML 的电子商务、电子数据交
换、元数据交换以及应用于需要在相同数据的不同XML 表示之间进行转换的重要组成部分。由于缺乏对人们要浏览的显示器
上显示数据的了解,这些用途还要结合起来使用。它们纯粹是用来将数据从一种计算机系统或程序移到另一种计算机系统或
程序中。
因此,许多早期的XSL 实现都毫无例外地将焦点集中在变换部分,而忽略了格式化对象。这些是不完善的实施方案,但仍然
是很有用的。并非所有的数据最终都必须显示在计算机显示器上或打印到纸上。
第15 章“XSL 格式化对象”将涉及XSL 格式化语言。
XML 实用大全
第 446 页
有关XSL 警告语
XSL 仍然处于开发中。XSL 语言在过去发生了根本性的变化,将来肯定会再发生变化。本章是根据1999 年4 月21 日的XSL
规范草案(第四稿)写成的。读者阅读此书时,此XSL 草案可能已经被取代了,精确的XSL 句法将会变化。我希望本章与实
际的规范不会相差太大。但是,如果的确有不一致的地方,应将本书中的例子与最新规范进行对比。
糟糕的是,仍然没有任何软件能实现1999 年4 月21 日的XSL 规范草案(第四稿)的所有内容,甚至不能实现XSL 变换的部
分。现有的所有产品只能实现当前草案的不同子集。而且,许多产品(包括Internet Explorer 5.0 和XT)加入的元素并
没有出现在当前XSL 草案规范中。最后一点是,大多数至少要实现部分XSL 内容的产品在其可实现的部分中也存在着很严重
的程序错误(bug)。因此,在不同的软件中,只有廖廖无几的几个例子能准确地以相同的方式工作。
当然,随着此项标准向最后版本改进时,当开发商解决了自己产品中的程序错误并实现没有被实现的内容时,以及当出版的
更多软件支持XSL 时,最终这种情况是可以得到修正的。在达到此目的之前,还得面对这样的选择:要么忍痛使用目前不完
善的、未完成的XSL,并且试图避开遇到的所有程序错误和疏忽,要么使用更确定的技术(如CSS),直到XSL 更加可靠为
止。
XML 实用大全
第 447 页
14.2 XSL 变换概述
在XSL 变换中,XSL 处理程序读取XML 文档和XSL 样式单。基于处理程序在XSL 样式单中找到的指令,输出新的XML 文档。
14.2.1 树形结构
就像第6 章学到的那样,每个结构整洁的XML 文档都是树形结构(tree)。树形结构是一种数据结构,它是由连接起来的节
点(node)组成的,这些节点起始于一个称为根节点(root)的单节点。根节点连接它的子节点,每个子节点可以连接零个
或多个它自己的子节点,依次类推。没有自己的子节点的节点称为叶节点(leave)。树形结构的图表更像家谱,列出各个
先辈的后代。树形结构最有用的特征是每个节点及其子节点也会形成树形结构。因此,一个树形结构就是所有树形结构的分
级结构,在此分级结构中,各树形结构都是由更小的树形结构建立的。
XML 树形结构的节点就是元素及元素的内容。但是,对于XSL,特性、命名域(namespace)、处理指令以及注释必须也作为
节点看待。而且文档的根节点必须与根(基本)元素区别开来。因此,XSL 处理程序假定XML 树形结构包含下列七类节点:
1.根节点
2.元素
3.文本
4.特性
5.命名域
6.处理指令
7.注释
例如,对于清单14-1 中的XML 文档,它显示的是元素周期表,在本章我将用这个元素周期表作为例子(更恰当地说,是周
期表中的前两个元素)。
完整的元素周期表放在本书所附光盘中的examples/periodic_table 文件夹中的allelements.xml 文件中。
根节点PERIODIC_TABLE 元素包含ATOM 子元素。每个ATOM 元素含有各种子元素,以便提供原子序数、原子量、符号、沸点
等等信息。UNITS 特性为具有单位的元素指定单位。
这里使用ELEMENT 比ATOM 或许更恰当。但是,写成ELEMENT 元素难以区分化学元素和XML 元素。因此,起码出于
本章的考虑,ATOM 似乎更具可读性。
清单14-1:氢和氦元素的XML 周期表
<?xml version=”1.0”?>
<?xml-stylesheet type=”text/xsl” href=”14-2.xsl”?>
XML 实用大全
第 448 页
<PERIODIC TABLE>
<ATOM STATE=”GAS”>
<NAME>Hydrogen</NAME>
<SYMBOL>H</SYMBOL>
<ATOMIC_NUMBER>l</ATOMIC_NUMBER>
<ATOMIC_WLIGHT>1.00794</ATOMIC_WEIGHT>
<BOILING_POINT UNITS=”Kelvin”>20.28</BOILING_POINT>
<MELTING_POINT UNITS=”Kelvin”>13.81</MELTING_POINT>
<DENSITY UNITS=”grdMS/cubic centimeter”><!- At 300K ->
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:
XML实用大全(126)