`
izuoyan
  • 浏览: 8946553 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

XSL基础教程

阅读更多

XSL(eXtensible Style sheet Language),即可扩展样式表语言,是XML的亲密
伙伴。要学习好XML,不能不掌握XSL。本文就向你全面讲述XSL的一切一切:
XSL介绍:介绍XSL是XML的样式表语言,XSL是什么以及它能做什么。

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、XPath和XSL格式对象。

XSL语言
  XSL实际上包含三种语言,其中最重要的是XSLT。
XSL是三种语言的结合体
  上面提到,XSL实际上包含三种语言,具体是:
  XSLT是一种转换XML的语言;
  XPath是一种定义XML部分或模式的语言;
  XSL格式化对象是一种定义XML显示方式的语言。
  XSLT是一种用来将XML文档转换成其他类型文档或其它XML文档的语言。XPat
h是一种对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。

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 xm
lns: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可以从Micr
osoft下载,未来版本的Internet Explorer和Windows都将携带它。
  按照Microsoft的说法,MSXML 3.0与正式的W3C XSL 标准100%兼容:“MSXM
L 3.0比MSXML 2.5有明显的进步:安全的服务器HTTP访问,XSLT和XPath的完整执
行,到SAX的改变(用于XML的简单API),与W3C标准更加一致,以及许多臭虫的
修复。”

XSL转换:如何用XSL将XML文档转化成HTML文档,方法是向XML文档中插入一个XS
L样式表引用。

XSL–转换
  本节将举例学习如何用XSL将XML转换成HTML。这个举例的细节将在下一节中解释。
从XML文档开始
  首先从打算转换成HTML的XML文档开始:

  <?xml version="1.0"?>

  <CATALOG>

   <CD>

    <TITLE>Empire Burlesque</TITLE>

    <ARTIST>Bob Dylan</ARTIST>

    <COUNTRY>USA</COUNTRY>

    <COMPANY>Columbia</COMPANY>

    <PRICE>10.90</PRICE>

    <YEAR>1985</YEAR>

   </CD>
如果使用的是Internet Explorer 5.0或更高版本,就可以查看这个XML文件的显示结果。
创建一个XSL样式表文档
  现在用转换模板来创建一个XSL样式表:


  <?xml version='1.0'?>

  <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl>

  <xsl:template match="/">

   <html>

   <body>

    <table border="2" bgcolor="yellow">

     <tr>

      <th>Title</th>

      <th>Artist</th>

     </tr>

     <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>

    </table>

   </body>

   </html>

  </xsl:template>

  </xsl:stylesheet>
如果使用的是Internet Explorer 5.0或更高版本,就可以查看这个XSL文件的显示结果。

将样式表连接到XML文档
  现在向XML文档中增加一个XSL样式表引用:

  <?xml version="1.0"?>

  <?xml-stylesheet type="text/xsl" href="cd_catalog.xsl"?>

  <CATALOG>

   <CD>

    <TITLE>Empire Burlesque</TITLE>

    <ARTIST>Bob Dylan</ARTIST>

    <COUNTRY>USA</COUNTRY>

    <COMPANY>Columbia</COMPANY>

    <PRICE>10.90</PRICE>

    <YEAR>1985</YEAR>

   </CD>
如果有一个与XSL兼容的浏览器,例如Internet Explorer 5.0或更高版本,那么
就能很好地将XML转换成HTML。点击这里查看结果。
XSL模板:XSL如何使用模板来定义从XML到另一种输出格式的转换。

XSL模板
  XSL用模板来描述如何输出 XML。

CSS的使用规则
  如果已经学习过CSS的知识,我们就会知道CSS是用一个或多个规则来定义HT
ML元素的输出,用一个选择器将规则与一个HTML元素联系起来。比如以下这个CS
S规则中的p选择器说明应该用一种叫做arial的字体来显示一个<p>元素:
  p { font-family: arial }

XSL使用模板
  XSL使用一个或多个模板来定义如何输出XML元素,用一个匹配属性来将模板
与一个XML元素联系起来,还可以用匹配属性来为XML文档的一个完整分支来定义
模板。
  请看以下的XSL样式表,它包含一个模板以输出前一节中的XML CD目录:

  <?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl>
<xsl:template match="/">
<html>
<body>
<table border="1">
<tr>
<th>Title</th>
<th>Artist</th>
</tr>
<tr>
<td>.</td>
<td>.</td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
由于样式表本身就是一个XML文档,因此文档以一个xml声明开始:<?xml versio
n='1.0'?>。第二行中的xsl:stylesheet标记定义了样式表的开始。第三行中的x
sl:template标记定义了一个模板的开始。模板属性match="/"将模板与XML源文档
的根 (/)联系(匹配)起来。文档的其它部分包含了模板本身,最后两行定义了
模板的结束和样式表的结束。

用Internet Explorer 5来看看XML文件、XSL文件以及结果。 <xsl:value-of>元
素 前面例子的结果有点令人失望,因为没有将数据从XML文档复制到输出中。XS
L的<xsl:value-of>元素可以用来选择进入XSL转换输出流中的XML元素:

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl>
<xsl:template match="/">
<html>
<body>
<table border="1">
<tr>
<th>Title</th>
<th>Artist</th>
</tr>
<tr>
<td><xsl:value-of select="CATALOG/CD/TITLE"/></td>
<td><xsl:value-of select="CATALOG/CD/ARTIST"/></td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
注意:选择属性值用到的语法被称为XSL模式。它工作起来就象是在一个文件系统
中航行,其中用一个前斜线 (/) 来选择子目录。
用Internet Explorer 5来看看XML文件、XSL文件以及结果。
<xsl:for-each>元素

前面例子中的结果还是有点不太令人满意,因为从XML文档中只复制了一行数据到
输出。XSL的<xsl:for-each>元素可以用来将每个XML元素选择到XSL转换的输出流
中:

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl>
<xsl:template match="/">
<html>
<body>
<table border="1">
<tr>
<th>Title</th>
<th>Artist</th>
</tr>
<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>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
xsl:for-each元素在XML文档中查找元素,然后为每个元素重复模板的一部分。
用Internet Explorer 5来看看XML文件、XSL文件以及结果。

分享到:
评论

相关推荐

    XSL基础教程 从 XSLT 样式表调用 JavaScript

    XSL基础教程 从XSLT样式表调用 JavaScript XSLT 是什么类型的语言 XML认证教程,第 4 部分 XSL样式单

    网页XSL基础教程,支持XML和XSL

    一个跨浏览器的解决方法 ...在服务器上进行XSL转换正在成为未来Internet信息服务器工作任务的一个主要部 分,同时我们将看到专用浏览器市场的发展,如:Braille、有声网络、网络打印 机、手持PC、移动电话等。

    XSL基础教程以及元素参考手册

    XSL基础、 函数、 元素参考手册、 学习笔记

    xsl简易教程,让你轻松入门

    一篇非常不错的xsl简易教程,希望对您有所帮助

    XSLT基础教程

    NULL 博文链接:https://xx371557412.iteye.com/blog/1320913

    瑞杰-教程-XML&XSL; 学习实录

    培训时整理的XML、XSL的学习笔记 xml xsl基础

    xml基础教程

    《XML 基础教程》系统地阐述了XML的基本概念和语法规则,介绍了如何用DTD与XML Schema来确保XML文档的有效性,讲述了使用CSS与XSL样式表来显示和转换XML文档的各个步骤,探讨了使用DSO与DOM访问XML文档的各种方法。...

    HTML的XML基础教程TXT

    XML简介 XML属性和实体 XML的未来 Mozilla - Netscape源代码 SMIL:多媒体标记 用WDDX交换数据 理解XSL 最新的技术-XSS,你想了解吗?

    XML基础教程-电子教案.rar

    XML基础教程-电子教案...XML基础教程、第2章 XML语法、第3章 使用DTD规范XML文档、第4章 使用CSS格式XML文档、第5章 使用XSL转换XML文档、第6章 使用DSO显示XML文档、第7章 使用DOM访问XML文档、第8章 XML网络应用实例

    XML基础教程,XML源代码

    XML基础教案ppt,XML基础教程new源代码

    XML初学入门教程(pdf)

    9 第七章:XML DOM 11 第八章:XSL - The Style Sheet Language of XML(XML的样式表语言) 12 第九章:XML Behaviors - 新的DHTML 15 第十章:使用IE5浏览XML文件 17 第十一章:一个很典型的XML文件...

    w3school web编程教程

    从基础的HTML到XHTML,乃至进阶的XML、SQL、数据库、多媒体和WAP。 HTML教程 HTML XHTML CSS TCP/IP XML教程 XML DTD XML DOM XSL XSLT XSL-FO XPath XQuery XLink XPointer Schema XForms SOAP ...

    XML.rar(里面两本书:XML编程从入门到精通.pdf--xml_基础学习完全手册.chm)都是【高清晰】

    随着internet的发展,xml作为它不可或缺的一部分,充当着至关重要的作用,作为一个程序员,现在还不了解XML,那你太落伍了。这里的两本书都是基础教程,可供参考[推荐]

    W3SCHOOL中文离线版教程

    包含HTML教程、浏览器脚本、服务器脚本、XML教程、Web Services、.NET分类,具体内容如下:HTML、HTML5、XHTML、CSS、CSS3、TCP/IP、JavaScript、HTML DOM、jQuery、jQuery Mobile、AJAX、JSON、DHTML、E4X、WML...

    xml 学习课件

    第1章引论.ppt 第2章HTML基础.ppt 第3章XML基础.ppt 第4章XML文档类型定义.ppt 第5章XMLSchema结构.ppt 第6章层叠样式表.ppt ...第8章XSL转换.ppt 第9章XML文档对象模型-DOM.ppt 第10章XML编程技术.ppt

    XML宝典(第2版).pdf(保证是PDF格式)

    利用本书,读者能够掌握如何使用样式表(CSS和XSL)处理文档的显示效果,并将文档转化为HTML,用于在浏览器中显示。书中还介绍了XML的相关技术XLink和XPointer,这些技术为形成文档之间和文档内部的链接提供了最有效...

    w3school.com.cn整站下载 领先的 Web 技术教程 离线学习

    从基础的HTML到XHTML,乃至进阶的XML、SQL、数据库、多媒体和WAP。 完整的网站技术参考手册 我们的参考手册涵盖了网站技术的方方面面。 其中包括W3C的标准技术:HTML、XHTML、CSS、XML 。以及其他的技术,诸如...

    C#完整教程

    C#完整教程以下是目录: 第一章 C#语言基础 5 1.1 C#语言特点 5 1.2 编写控制台应用程序 6 1.3 类的基本概念 10 1.4 C#的数据类型 13 1.5 运算符 20 1.6 程序控制语句 23 1.7 类的继承 26 1.8 类的成员 28 1.9 类的...

    XML实用教程 基础 代码 高级

    介绍了XML的基础知识以及代码演示 以及高级的分支

    xml教程(清华IT学习认证中心)

    第1章 XML基础知识 第2章 DTD 第3章 Schema 第4章 SAX 第5章 DOM 第6章 XSL 第7章 XPATH 第8章 XML和数据库

Global site tag (gtag.js) - Google Analytics