XSLT 经典教程.docx

上传人:b****6 文档编号:4957990 上传时间:2022-12-12 格式:DOCX 页数:39 大小:87.86KB
下载 相关 举报
XSLT 经典教程.docx_第1页
第1页 / 共39页
XSLT 经典教程.docx_第2页
第2页 / 共39页
XSLT 经典教程.docx_第3页
第3页 / 共39页
XSLT 经典教程.docx_第4页
第4页 / 共39页
XSLT 经典教程.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

XSLT 经典教程.docx

《XSLT 经典教程.docx》由会员分享,可在线阅读,更多相关《XSLT 经典教程.docx(39页珍藏版)》请在冰豆网上搜索。

XSLT 经典教程.docx

XSLT经典教程

XSLT教程

1.基础

XSLT首页

∙NextPage

XSL指扩展样式表语言(EXtensibleStylesheetLanguage)。

万维网联盟开始发展XSL的起因是由于对基于XML的样式表语言的需求。

XSLT指XSL转换。

在此教程中,你将学习如何使用XSLT将XML文档转换为其他文档,比如XHTML。

开始学习XSLT !

XSLT参考手册

XSLT元素

对所有来自W3C标准的XSLT元素进行了描述,以及关于浏览器支持的信息。

XSLT函数

XSLT包含了超过100个内置函数。

这些函数可以用于字符串、数值、日期和时间比较、节点和QName处理,序列处理,逻辑值等等。

内容目录

XSL语言

详细解释XSL的子语言:

XSLT、XPath和XSL-FO。

XSLT简介

XSLT的简介。

包括其概念和作用。

XSLT浏览器

支持XSLT的浏览器总论。

XSLT转换

如何使用XSLT将XML文档转换为XHTML文档。

XSLT模板

template>元素包含了当指定的节点被匹配时所能应用的规则.

XSLT

value-of>元素

value-of>元素可提取选定节点的值。

XSLT

for-each>元素

for-each>元素允许您在XSL中进行循环。

XSLT

sort>元素

sort>元素用于对输出进行排序。

XSLT

if>元素

if>元素用于针对XML文件的内容放置一个条件测试。

XSLT

choose>元素

choose>元素被用来与

when>和

otherwise>配合使用,来表达多重的条件检验。

XSLT

apply-templates>元素

apply-templates>元素可把模板规则应用到当前节点或者当前元素的子节点。

客户端的XSL

如何在客户端将XML文档转换为XHTML文档。

服务器端的XSL

如何在服务器端将XML文档转换为XHTML文档。

XSLEditingXML

存储在XML文件中的数据可以通过因特网浏览器进行编辑。

本章将讲解如何打开、编辑、保存一个存储于服务器的XML文件。

XSL编辑器

当编辑XSL文档时,为什么应该使用XML编辑器。

XSLT总结

本节是对您在本教程所学内容的总结,并为您推荐了下一步应该学习的内容。

XSLT参考手册

XSLT元素

对所有来自W3C标准的XSLT元素进行了描述,以及关于浏览器支持的信息。

XSLT函数

XSLT拥有超过100个内置的函数。

这些函数可以用于字符串、数值、日期和时间比较、节点和QName处理,序列处理,逻辑值等等。

XSL语言

∙PreviousPage

∙NextPage

它起始于XSL,结束于XSLT、XPath以及XSL-FO。

起始于XSL

XSL指扩展样式表语言(EXtensible Stylesheet Language)。

万维网联盟(W3C)开始发展XSL的原因是:

存在着对于基于XML的样式表语言的需求。

CSS=HTML样式表

HTML使用预先定义的标签,标签的意义很容易被理解。

HTML元素中的

元素定义表格-并且浏览器清楚如何显示它。

向HTML元素添加样式是很容易的。

通过CSS,很容易告知浏览器用特定的字体或颜色显示一个元素。

XSL=XML样式表

XML不使用预先定义的标签(我们可以使用任何喜欢的标签名),并且这些标签的意义并不都那么容易被理解。

元素意味着一个HTML表格,一件家具,或是别的什么东西-浏览器不清楚如何显示它。

XSL可描述如何来显示XML文档!

XSL-不仅仅是样式表语言

XSL包括三部分:

XSLT

一种用于转换XML文档的语言。

XPath

一种用于在XML文档中导航的语言。

XSL-FO

一种用于格式化XML文档的语言。

本教程的主要内容是XSLT

本教程的其余部分是XSLT-用来转换XML文档的语言。

你也可以学习我们的《XPath教程》和《XSL-FO教程》。

XSLT简介

∙PreviousPage

∙NextPage

XSLT是一种用于将XML文档转换为XHTML文档或其他XML文档的语言。

XPath是一种用于在XML文档中进行导航的语言。

学习之前,您需要具备的基础知识:

在您继续学习之前,需要对以下知识有基本的了解:

∙HTML/XHTML

∙XML/XML命名空间

∙XPath

如果您希望首先学习这些项目,请在我们的 首页 访问这些教程。

什么是XSLT?

∙XSLT指XSL转换(XSLTransformations)。

∙XSLT是XSL中最重要的部分。

∙XSLT可将一种XML文档转换为另外一种XML文档。

∙XSLT使用XPath在XML文档中进行导航。

∙XPath是一个W3C标准。

XSLT=XSL转换

XSLT是XSL中最重要的部分。

XSLT用于将一种XML文档转换为另外一种XML文档,或者可被浏览器识别的其他类型的文档,比如HTML和XHTML。

通常,XSLT是通过把每个XML元素转换为(X)HTML元素来完成这项工作的。

通过XSLT,您可以向或者从输出文件添加或移除元素和属性。

您也可重新排列元素,执行测试并决定隐藏或显示哪个元素,等等。

描述转化过程的一种通常的说法是,XSLT把XML源树转换为XML结果树。

XSLT使用XPath

XSLT使用XPath在XML文档中查找信息。

XPath被用来通过元素和属性在XML文档中进行导航。

如果您希望首先学习XPath,请访问我们的 XPath教程。

它如何工作?

在转换过程中,XSLT使用XPath来定义源文档中可匹配一个或多个预定义模板的部分。

一旦匹配被找到,XSLT就会把源文档的匹配部分转换为结果文档。

XSLT是W3C标准

XSLT在1999年11月16日被确立为W3C标准。

如需更多有关W3C的XSLT活动的信息,请访问我们的 W3C教程。

XSLT浏览器

∙PreviousPage

∙NextPage

几乎所有主要的浏览器均支持XML和XSLT。

MozillaFirefox

从1.0.2版本开始,Firefox就已开始支持XML和XSLT(以及CSS)。

Mozilla

Mozilla含有用于XML解析的Expat,并支持XML+CSS。

Mozilla同样支持命名空间。

Mozilla可执行XSLT。

Netscape

从版本8开始,Netscape就开始使用Mozilla引擎,所以它对XML/XSLT的支持与Mozilla是相同的。

Opera

从版本9开始,Opera已开始支持XML和XSLT(以及CSS)。

版本8仅支持XML+CSS。

InternetExplorer

从版本6开始,InternetExplorer已开始XML、命名空间、CSS、XSLT以及XPath。

版本5 不兼容官方的W3CXSL标准。

XSLT-转换

∙PreviousPage

∙NextPage

实例研究:

如何使用XSLT将XML转换为XHTML。

我们会在下一节对本例的细节进行解释。

正确的样式表声明

把文档声明为XSL样式表的根元素是

stylesheet>或

transform>。

注释:

 

stylesheet>和

transform>是完全同义的,均可被使用!

根据W3C的XSLT标准,声明XSL样式表的正确方法是:

stylesheetversion="1.0"xmlns:

xsl="http:

//www.w3.org/1999/XSL/Transform">

或者:

transformversion="1.0"xmlns:

xsl="http:

//www.w3.org/1999/XSL/Transform">

如需访问XSLT的元素、属性以及特性,我们必须在文档顶端声明XSLT命名空间。

xmlns:

xsl="http:

//www.w3.org/1999/XSL/Transform"指向了官方的W3CXSLT命名空间。

如果您使用此命名空间,就必须包含属性version="1.0"。

从一个原始的XML文档开始

我们现在要把下面这个XML文档("cdcatalog.xml")转换为XHTML:

xmlversion="1.0"encoding="ISO-8859-1"?

>

EmpireBurlesque

BobDylan

USA

Columbia

10.90

1985

.

.

.

在InternetExplorer和Firefox中查看XML文件:

打开XML文件(通常通过点击某个链接)-XML文档会以颜色化的代码方式来显示根元素及子元素。

点击元素左侧的加号或减号可展开或收缩元素的结构。

如需查看原始的XML源文件(不带有加号和减号),请在浏览器菜单中选择“查看页面源代码”。

在Netscape6中查看XML文件:

打开XML文件,然后在XML文件中右击,并选择“查看页面源代码”。

XML文档会以颜色化的代码方式来显示根元素及子元素。

在Opera7中查看XML文件:

打开XML文件,然后在XML文件中右击,选择“框架”/“查看源代码”。

XML文档将显示为纯文本。

查看"cdcatalog.xml"。

创建XSL样式表

然后创建一个带有转换模板的XSL样式表("cdcatalog.xsl"):

xmlversion="1.0"encoding="ISO-8859-1"?

>

stylesheetversion="1.0"xmlns:

xsl="http:

//www.w3.org/1999/XSL/Transform">

templatematch="/">

MyCDCollection

Title

Artist

for-eachselect="catalog/cd">

for-each>

value-ofselect="title"/>

value-ofselect="artist"/>

template>

stylesheet>

查看"cdcatalog.xsl"

把XSL样式表链接到XML文档

向XML文档("cdcatalog.xml")添加XSL样式表引用:

xmlversion="1.0"encoding="ISO-8859-1"?

>

xml-stylesheettype="text/xsl"href="cdcatalog.xsl"?

>

EmpireBurlesque

BobDylan

USA

Columbia

10.90

1985

.

.

.

如果您使用的浏览器兼容XSLT,它会很顺利地把您的XML 转换为 XHTML。

查看结果。

我们会在下一节对上面的例子中的细节进行解释。

XSLT

template>元素********Lookthis**********

∙PreviousPage

∙NextPage

XSL样式表由一个或多套被称为模板(template)的规则组成。

每个模板含有当某个指定的节点被匹配时所应用的规则。

template>元素

template>元素用于构建模板。

match 属性用于关联XML元素和模板。

match属性也可用来为整个文档定义模板。

match属性的值是XPath表达式(举例,match="/"定义整个文档)。

好了,让我们看一下上一节中的XSL文件的简化版本:

xmlversion="1.0"encoding="ISO-8859-1"?

>

stylesheetversion="1.0"

xmlns:

xsl="http:

//www.w3.org/1999/XSL/Transform">

templatematch="/">

MyCDCollection

Title

Artist

.

.

template>

stylesheet>

代码解释:

由于XSL样式表本身也是一个XML文档,因此它总是由XML声明起始:

xmlversion="1.0"encoding="ISO-8859-1"?

>

下一个元素,

stylesheet>,定义此文档是一个XSLT样式表文档(连同版本号和XSLT命名空间属性)。

template> 元素定义了一个模板。

而 match="/" 属性则把此模板与XML源文档的根相联系。

template>元素内部的内容定义了写到输出结果的HTML代码。

最后两行定义了模板的结尾,及样式表的结尾。

以上转换的结果类似这样:

查看XML文件,查看XSL文件,查看结果

此例的结果有一点小缺陷,因为数据没有从XML文档被复制到输出。

在下一节,您将学习到如何使用 

value-of> 元素从XML元素选取值。

XSLT

value-of>元素

∙PreviousPage

∙NextPage

value-of>元素用于提取某个选定节点的值。

value-of>元素

value-of>元素用于提取某个选定节点的值,并把值添加到转换的输出流中:

xmlversion="1.0"encoding="ISO-8859-1"?

>

stylesheetversion="1.0"

xmlns:

xsl="http:

//www.w3.org/1999/XSL/Transform">

templatematch="/">

MyCDCollection

Title

Artist

value-ofselect="catalog/cd/title"/>

value-ofselect="catalog/cd/artist"/>

template>

stylesheet>

注释:

select 属性的值是一个XPath表达式。

此表达式的工作方式类似于定位某个文件系统,在其中正斜杠可选择子目录。

上面的转换结果类似这样:

查看此XML文件,查看此XSL文件,并查看结果。

这个例子的结果有一点缺陷:

仅有一行数据从XML文档被拷贝到输出结果。

在下面的章节中,你将学习如何使用 

for-each> 元素来循环遍历XML元素,并显示所有的记录。

XSLT

for-each>元素

∙PreviousPage

∙NextPage

for-each>元素允许您在XSLT中进行循环。

for-each>元素

for-each>元素可用于选取指定的节点集中的每个XML元素。

xmlversion="1.0"encoding="ISO-8859-1"?

>

stylesheetversion="1.0"

xmlns:

xsl="http:

//www.w3.org/1999/XSL/Transform">

templatematch="/">

MyCDCollection

Title

Artist

for-eachselect="catalog/cd">

value-ofselect="title"/>

value-ofselect="artist"/>

for-each>

template>

stylesheet>

注释:

select 属性的值是一个XPath表达式。

此表达式的工作方式类似于定位某个文件系统,在其中正斜杠可选择子目录。

上面的转换结果类似这样:

查看此XML文件,查看此XSL文件,并查看结果。

结果过滤

通过在

for-each>元素中添加一个选择属性的判别式,我们也可以过滤从XML文件输出的结果。

for-eachselect="catalog/cd[artist='BobDylan']">

合法的过滤运算符:

∙= (等于)

∙!

=(不等于)

∙<(小于)

∙>(大于)

xmlversion="1.0"encoding="ISO-8859-1"?

>

stylesheetversion="1.0"

xmlns:

xsl="http:

//www.w3.org/1999/XSL/Transform">

templatematch="/">

MyCDCollection

Title

Artist

for-eachselect="catalog/cd[artist='BobDylan']">

value-ofselect="title"/>

value-ofselect="artist"/>

for-each>

template>

stylesheet>

上面的转换结果类似这样:

查看此XML文件,查看此XSL文件,并查看结果。

XSLT

sort>元素

∙PreviousPage

∙NextPage

sort>元素用于对结果进行排序。

在何处放置排序信息

如需对结果进行排序,只要简单地在XSL文件中的

for-each>元素内部添加一个

sort>元素:

xmlversion="1.0"encoding="ISO-8859-1"?

>

stylesheetversion="1.0"

xmlns:

xsl="http:

//www.w3.org/1999/XSL/Transform">

templatematch="/">

MyCDCollection

Title

Artist

for-eachselect="catalog/cd">

sortselect="artist"/>

value-ofselect="title"/>

value-ofselect="artist"/>

for-each>

template>

stylesheet>

注释:

select 属性指示需要排序的XML元素。

上面的转换结果类似这样:

查看此XML文件,查看此XSL文件,并查看结果。

XSLT

if>元素

∙PreviousPage

∙NextPage

if>元素用于放置针对XML文件内容的条件测试。

if>元素

如需

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1