XSLT个人摘录

先了解一下XSLT:

XSLT中的T代表英语中的“转换”(Transformation)。它是XSLeXtensible 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的比较

CSS同样可以格式化XML 文档,那么有了CSS为什么还需要XSLT,因为CSS虽然能够很好的控制输出的样式,比如色彩,字体,大小等,但是它有严重的局限性,就是:
(1)CSS不能重新排序文档中的元素;
(2)CSS不能判断和控制哪个元素被显示,哪个不被显示;
(3)CSS不能统计计算元素中的数据;
简洁,消耗系统资源少;而XSLT虽然功能强大,但因为要重新索引XML结构树,所以消耗内存比较多。将它们结合起来使用,比如在服务器端用XSLT处理文档,在客户端用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]  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值