先了解一下XSLT:
XSLT中的T代表英语中的“转换”(Transformation)。它是XSL(eXtensible Stylesheet Language)规范的一部分。
XSLT用于将一种XML文档转换为另外一种XML文档,或者可被浏览器识别的其他类型的文档,比如HTML和XHTML。
XSLT是W3C标准:XSLT在1999年11月16日被确立为W3C标准。
应用功能:
(1)、将数据和表达形式分离。就象天气预报的信息可以显示在不同的设备上,电视,手机或者其它。
(2)、在不同的应用之间传输数据。将XML转换为HTML,是XSLT最主要的功能。
XSL划分:
XSL在转换XML文档时分为明显的两个过程,第一转换文档结构;其次将文档格式化输出。这两步可以分离开来并单独处理,因此XSL在发展过程中逐渐分裂为XSLT(结构转换)和XSL-FO(formattingobjects)(格式化输出)两种分支语言,其中XSL-FO的作用就类似CSS在HTML中的作用。
XML是一个完整的树结构文档。在转换XML文档时可能需要处理其中的一部分(节点)数据和查找,如何查找和定位XML文档中的信息呢,XPath就是一种专门用来在XML文档中查找信息的语言。
XSLT与css的比较
(1)CSS不能重新排序文档中的元素;
(2)CSS不能判断和控制哪个元素被显示,哪个不被显示;
(3)CSS不能统计计算元素中的数据;
XSLT的组合使用
如果您的浏览器支持 XSLT,那么在浏览器中它可被用来将
文档转换为 XHTML。
在客户端,通过使用 JavaScript,我们可以:
进行浏览器确认测试
根据浏览器和使用者的需求来使用不同的样式表
在客户端把 XML 文件转换为 XHTML 的javascript
源代码示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<
html
>
<
body
>
<
scripttype
=
"text/javascript"
>
//LoadXML
varxml=newActiveXObject("Microsoft.XMLDOM")
xml.async=false
xml.load("xml文件的路径")
//LoadXSL
varxsl=newActiveXObject("Microsoft.XMLDOM")
xsl.async=false
xsl.load("xsl文件的路径")
//Transform
document.write(xml.transformNode(xsl))
</
script
>
</
body
>
</
html
>
|
代码说明:第一段JS代码创建了微软的 XML 解析器的一个实例,然后把 XML 文件载入了内存。第二段代码创建了解析器的另一个实例,然后把这个 XSL 文件载入了内存。最后一行代码使用 XSL
文档转换了 XML
文档,并在浏览器中把结果作为 XHTML 显示出来。任务完成!
XSLT在服务器端
由于并非所有的浏览器都支持 XSLT,另一种解决方案是在
服务器上完成 XML 至 XHTML 的转化。
在服务器上把 XML 文件转换为 XHTML 的ASP
源代码示例:
<%
'Load XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Load XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform file
Response.Write(xml.transformNode(xsl))
%>
代码说明:在ASP中,第一段代码创建了微软的 XML 解析器的一个实例,然后把 XML 文件载入了内存。第二段代码创建了解析器的另一个实例,然后把这个 XSL 文件载入了内存。最后一行代码使用 XSL 文档转换了 XML 文档,并把结果作为 XHTML 发送到您的浏览器。任务完成!
[1]