(作者:青苹果工作室编译)
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的浏览器很少,我们将用inte.net explorer 5.0来演示xsl。
inte.net explorer的xml解析器
为了用xsl来处理一个xml文档,你需要一个带有xsl引擎的xml解析器。目前,inte.net explorer 5.0是符合这一条件的唯一浏览器。所以,本文举例中的代码只在inte.net explorer 5.0或更高版本中工作。
inte.net explorer的xsl引擎
inte.net explorer 5.0中的xsl并不是100%的与最新发布的w3c xsl标准相吻合。在xsl标准完全固定下来之前,inte.net explorer 5就已经发布了,并且当时的xsl标准还是一个工作草稿。但是microsoft已经承诺在下一个版本中解决这个问题。
本文中的例子与正式的w3c xsl推荐中的例子只有很小的不同,这些例子很适用于xsl的学习。
例子中唯一可见的区别就是xsl样式表声明:
这是w3c xsl推荐中的标准方式:<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform">
这是inte.net explorer的方式(来自xsl工作草稿):<xsl:stylesheet xmlns:xsl="http://www.w3.org/tr/wd-xsl">
inte.net explorer msxml
msxml 2.0是ie 5.0所携带的xml解析器的名字,msxml 2.5是windows 2000所携带的解析器的名字,msxml 3.0是xml解析器的最新版本。msxml3.0可以从microsoft下载,未来版本的inte.net explorer和windows都将携带它。
按照microsoft的说法,msxml 3.0与正式的w3c xsl 标准100%兼容:“msxml 3.0比msxml 2.5有明显的进步:安全的服务器http访问,xslt和xpath的完整执行,到sax的改变(用于xml的简单api),与w3c标准更加一致,以及许多臭虫的修复。”
更多信息请看:http://msdn.microsoft.com/xml/general/xmlparser.asp
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器