XSL
语言
它以XSL为开始,以XSLT,XPath和XSL-FO为终结。
以XSL为开始
XSL
表示扩展样式表语言(EXtensible Stylesheet Language)。
因为基于XML样式表语言的需要,万维网联盟(W3C)开始着手发展XSL。
层叠式样式表(CSS)= HTML样式表
HTML
使用预定义标签,并且,标签的含义比较容易理解。
在HTML中,<table>元素定义了一个表格,并且,浏览器知道该如何去显示它。
给HTML元素添加样式是比较容易的。通过使用CSS,让浏览器显示具有特殊字体和颜色的元素是非常容易的。
XSL=XML
样式表
XML
不使用预定义标签(我们可以使用任何我们自己喜欢的标签名字),这些标签的含义并不容易理解。
HTML
中的<table>元素适用于定义一张表格的,因此浏览器知道该如何去显示它们。
给HTML元素添加样式是比较容易的。通过使用CSS,让浏览器显示具有特殊字体和颜色的元素是非常容易的。
XSL-
扩展样式表语言(More Than a Style Sheet Language)
XSL
由3部分组成:
XSLT-
转变XML文档的语言。
XPath-
对XML文档进行导航的语言。
XSL-FO -
格式化XML文档的语言。
关于XSLT的教程
剩下这部分的教程是关于XSLT的——转换XML文档的语言。
XSLT
介绍
XSLT
是一种把XML文件转换成XHTML文档或者其他的XML文档的语言。
XPath
是一种用于导航XML文档的语言。
你应该事先了解下面这些知识
如果你想继续下面的学习,你必须得掌握下面这些基本知识。
XML / XML
命名空间
XPath
如果你想学习上述语言,可以在网络学院找到这些教程.
什么是XSLT?
XSLT
是一种用来转换XML / XSL文档结构的语言
XSLT
是XSL最重要的部分
XSLT
可以把XML文档转换成另一个XML文档
XSLT
通过XPath对XML文档进行定位
XSLT
是一种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
是一个网络标准
XSLT
在1999年11月16日成为W3C推荐的标准。
XSLT
浏览器
几乎所有专业浏览器都支持XML和XSLT。
Mozilla Firefox
Mozilla
火狐
1.0.2
版本的火狐浏览器是支持XML和XSLT 的(以及CSS)。
Mozilla
Mozilla
含有XML外部解析器并且支持XML+CSS的显示,同时,Mozilla也支持一些命名空间。
Mozilla
可以执行XSLT。
Netscape
Netscape
版本8使用的是Mozilla引擎,因此它和Mozilla一样支持XML / XSLT。
Opera
Opera
版本9 ,支持XML和XSLT(以及CSS);Opera版本8只支持XML+CSS。
Internet Explorer
IE6
浏览器支持XML,命名空间,CSS,XSLT和XPath。
IE5.0
并不支持官方的W3C XSL推荐标准。
XSLT
转换
周日, 10/14/2007 - 14:21 — ppkosd
Example study: How to transform XML into XHTML using XSLT.
实例学习:如何通过XSLT把XML转换成XHTML。
此实例的详细情况将在下一章中作详细说明。
正确的样式表声明
我们使用根元素<xsl:stylesheet> 或<xsl:transform>对XSL样式表文档进行声明。
注意: <xsl:stylesheet> 和<xsl:transform>是完全相同的,使用哪一个都可以。
根据W3C XSLT 的推荐标准,声明 XSL 样式表的正确方法如下:
<xsl:stylesheet version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
或:
<xsl:transform version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
如果希望访问XSLT元素、属性和特征,那么,我们必须在文件的头部事先声明XSLT命名空间。
“xmlns:xsl="http://www.w3.org/1999/XSL/Transform” 指出了官方的W3C XSLT 命名空间。如果你使用了这个命名空间,你也必须注明属性版本“version="1.0"。
以XML源文件开始
让我们把下面的XML文档("cdcatalog.xml")转换成XHTML吧:
<?xml version="1.0" encoding="ISO-8859-1"?><catalog> <cd> <title>Empire Burlesque</title> <artist>Bob Dylan</artist> <country>USA</country> <company>Columbia</company> <price>10.90</price> <year>1985</year> </cd>...</catalog>
在火狐和IE浏览器中查看XML文件的方法: 打开XML文件(通常情况下是通过链接打开的)—XML文件将会显示包含颜色代码的根元素和子元素。单击左边元素的“+”和“-”,就可以展开或者收回元素结构列表。查看XML源文件的源代码(不含加号+和减号-),在浏览器菜单里选择“查看—源文件[ IE ]”或者“查看—页面源代码[ FF ]”。
在Netscape 6中查看XML文件的方法:打开XML文件,在XML文件里右键单击选择“查看—页面源代码”。XML文件将会把标有颜色代码的根元素和子元素的文档显示出来。
在Opera 7中查看XML文件的方法: 打开XML文件,在XML文件里右键单击选择“框架/查看源代码”。XML文件将会以纯文本的形式显示。
查看 "cdcatalog.xml"
创建一个XSL样式表
此时,你已经通过一个转换模板创建了一个XSL样式表文档("cdcatalog.xsl")。
<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/"> <html> <body> <h2>My CD Collection</h2> <table border="1"> <tr bgcolor="#9acd32"> <th align="left">Title</th> <th align="left">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>
查看"cdcatalog.xsl"
将XSL样式表连接到XML文档中
把XSL样式表参数添加到XML文件("cdcatalog.xml")中:
<?xml version="1.0" encoding="ISO-8859-1"?><?xml-stylesheet type="text/xsl" href="cdcatalog.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> . . . </catalog>
如果你有一个支持XSLT的浏览器,它将会准确地帮你把XML文件转换成XHTML。
查看结果
以上实例的细节部分将会在下一章中作详细说明。
<xsl:template>
XSL
样式表是由一个或多个被称为“模板” 的规则集组成的。
每个模板都包含了与每一个指定节点相匹配的应用规则。
XSLT<xsl:template>