当前位置: 首页 > 图文教程 > XML家族 > XML > XSL基础教程第一章

XML
XML简易教程之四
XML与HTML的结合(上)
XML与HTML的结合(下)
XML入门的常见问题(一)
XML入门的常见问题(二)
XMLHTTP资料
什么是XML
什么是 XML Web Service
XML正在接管Web服务 成为SOA的基础
怎么样在网页上读取远程xml的数据
XML教程—编写结构完整的XML文档
读写xml文件的2个小函数
XML文档的基本操作
初学者如何开发出一个高质量的J2EE系统
优化 JavaScript 代码
自动更新程序的设计框架
使Firefox对XML的处理兼容IE的节点处理方法
WML学习之四 锚和任务
WML学习之五 显示表单
WML学习之六 事件

XML 中的 XSL基础教程第一章


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 48 ::
收藏到网摘: n/a

XSL介绍

XML的样式表语言XSL比CCS要复杂得多。

CSS:HTML的样式表语言

由于HTML使用预先确定的标记,因此这些标记的含义都很好理解:<p>元素定义一段,<h1>元素定义一个标题。浏览器知道如何显示这些元素。

使用CSS向HTML元素增加显示格式是一个简单的过程:很容易告诉浏览器用某种特殊字体或颜色来显示各个元素,浏览器也很容易理解。

XSL:XML的样式表

由于XML不使用预先确定的标记(我们可以根据需要使用任意标记),因此标记的含义并不能被直接理解:<table>可以表示一个HTML表格,也可以表示一件家具。由于XML的特性,浏览器不知道如何显示一个XML文档。

为了显示XML文档,必须要有一个机制来描述如何显示文档。这些机制之一是CSS,但是XSL(可扩展的样式表语言)是XML的首选样式表语言,它要比HTML使用的CSS复杂得多。

XSL:不仅仅是一个样式表

XSL包含3部分:

一个转换XML文档的方法;

一个定义XML部分和模式的方法;

一个格式化XML文档的方法。

如果对此还不能理解,那么可以先将XSL理解成:一种将XML转换成HTML的语言,一种可以过滤和分类XML数据的语言,一种可以对一个XML文档的部分进行寻址的语言,一种可以基于数据值格式化XML数据的语言(如用红色显示负数),一种向不同设备输出XML数据的语言(如屏幕、纸或声音)。

XSL是一种WWW标准

XSL是WWW协会推荐的一种标准。这种语言的前两部分在1999年11月已经成为W3C推荐标准。2000年,包括XSL格式化部分的完整XSL推荐标准成为W3C的候选标准。

XSL语言

XSL实际上包含三种语言,其中最重要的是XSLT。

XSL是三种语言的结合体

上面提到,XSL实际上包含三种语言,具体是:

XSLT是一种转换XML的语言;

XPath是一种定义XML部分或模式的语言;

XSL格式化对象是一种定义XML显示方式的语言。

XSLT是一种用来将XML文档转换成其他类型文档或其它XML文档的语言。XPath是一种对XML文档的部分进行寻址的语言。设计XPath是要让XSLT使用的。格式化是将一个XSL转换的结果变成适于读者或听众使用的输出格式的过程。

1999年11月16日,XSLT和XPath被作为两个单独的W3C推荐标准发布。目前对于XSL格式化对象还没有单独的W3C文档,但是在XSL1.0推荐标准内有一个描述。

XSLT:XSL转换

XSLT是XSL标准中最重要的部分,它用于将一个XML文档转换成另一个XML文档或另一种类型的文档,也就是将一个XML文档转换成浏览器所能识别的一种格式。这其中之一就是HTML。通常,XSLT将每个XML元素都转换成一个HTML元素。

XSLT还可以向输出文件中增加全新的元素,或去掉一些元素。它可以重新安排这些元素并对元素进行分类,测试并确定显示哪些元素等等。

描述这种转换过程的一个常用说法是:XSL用XSLT将一个XML来源树转换成另一个XML结果树(或将一个XML源文档转换成另一个XML结果文档)。

XSL如何工作

在转换的过程中,XSLT用XPath来定义源文档中与一个或多个预先确定的模板相匹配的部分。当找到了一个匹配时,XSLT就将源文档中的匹配部分转换成结果文档;而源文档中不与任何一个模板匹配的部分最终在结果中保持不变。

本文集中介绍XSLT和XPath

本文的大部分章节都集中在XSLT和XPath上。我们将用XSLT来定义XML转换,用XPath来为转换定义匹配模式。即使XSL包含了3个不同名称的不同部分,我们仍将使用XSL的通用术语。

XSL 浏览器

目前支持XSL的浏览器很少,我们将用Internet Explorer 5.0来演示XSL。

Internet Explorer的XML解析器

为了用XSL来处理一个XML文档,你需要一个带有XSL引擎的XML解析器。目前,Internet Explorer 5.0是符合这一条件的唯一浏览器。所以,本文举例中的代码只在Internet Explorer 5.0或更高版本中工作。

Internet Explorer的XSL引擎

Internet Explorer 5.0中的XSL并不是100%的与最新发布的W3C XSL标准相吻合。在XSL标准完全固定下来之前,Internet Explorer 5就已经发布了,并且当时的XSL标准还是一个工作草稿。但是Microsoft已经承诺在下一个版本中解决这个问题。

本文中的例子与正式的W3C XSL推荐中的例子只有很小的不同,这些例子很适用于XSL的学习。

例子中唯一可见的区别就是XSL样式表声明:

这是W3C XSL推荐中的标准方式:<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

这是Internet Explorer的方式(来自XSL工作草稿):<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

Internet Explorer MSXML

MSXML 2.0是IE 5.0所携带的XML解析器的名字,MSXML 2.5是Windows 2000所携带的解析器的名字,MSXML 3.0是XML解析器的最新版本。
MSXML3.0可以从Microsoft下载,未来版本的Internet Explorer和Windows都将携带它。

按照Microsoft的说法,MSXML 3.0与正式的W3C XSL 标准100%兼容:“MSXML 3.0比MSXML 2.5有明显的进步:安全的服务器HTTP访问,XSLT和XPath的完整执行,到SAX的改变(用于XML的简单API),与W3C标准更加一致,以及许多臭虫的修复。”