XSL基础教程(二)

摘要:
要学好XML,必须掌握XSL。诀窍是将XSL样式表添加到XML文件中,然后让浏览器对其进行转换。这就是XSL的优点。XSL的设计目的之一是使数据从一种格式转换为另一种格式成为可能,从而支持不同的浏览器和不同的用户需求。第二个代码块创建解析器的另一个实例,并将XSL文档加载到内存中。代码的最后一行将XML文档转换为XSL文档,并将结果返回给浏览器

青苹果工作室编译,转自 ccidnet 网站
2001年03月16日

内容: 
  客户端XSL
服务器端XSL

XSL(eXtensible Style sheet Language),即可扩展样式表语言,是XML的亲密
伙伴。要学习好XML,不能不掌握XSL。本文就向你全面讲述XSL的一切一切:
客户端XSL:如何用XML解析器在客户机上将XML文档转换成HTML文档。

一个JavaScript的解决方法
在前文中,我们解释了如何用XSL将一个文档从XML转换成HTML。窍门就是向XML文
件中增加一个XSL样式表,然后让浏览器来进行转换。即使这种方法能奏效,在X
ML文件中包含一个样式表引用也并非令人满意的方法,并且在不支持XSL的浏览器
上这种方法还不能奏效。
一个更通用的方法应该是用一个JavaScript来进行从XML到HTML的转换。使用一个
JavaScript,就更有以下可能性:

允许JavaScript进行浏览器细节测试;
根据浏览器和用户需求使用不同的样式表。
这就是XSL的美妙之处。XSL设计目的之一就是使数据从一个格式转换成另一个格
式成为可能,从而支持不同的浏览器和不同的用户需求。
客户端XSL转换将成为未来浏览器工作任务的一个主要部分,我们还将看到专业化
浏览器市场的成长,比如Braille、 发声网络、网络打印机、手持PC、移动电话
等。

在浏览器中将XML转换到HTML
以下是在客户机上将XML文件转换成HTML所需要的源代码,很简单:

    <html>
    <body>
    <script language="javascript">
    // Load XML
    var xml = new ActiveXObject("Microsoft.XMLDOM")
    xml.async = false
    xml.load("cd_catalog.xml")
    // Load the XSL
    var xsl = new ActiveXObject("Microsoft.XMLDOM")
    xsl.async = false
    xsl.load("cd_catalog.xsl")
    // Transform
    document.write(xml.transformNode(xsl))
    </script>
    </body>
    </html>
如果使用的是Internet Explorer 5.0 或更高版本,请点击这里查看结果。

代码的第一块创建了Microsoft XML 解析器(XMLDOM)的一个例示,并将XML文档加
载到内存中。代码的第二块创建解析器的另一个例示,并将XSL文档加载到内存中
。代码的最后一行用XSL文档转换XML文档,将结果写入HTML 文档中。


服务器端XSL:如何用XML解析器在服务器上将XML文档转换成HTML文档。

服务器端XSL
由于不是所有的浏览器都支持XML和XSL,因此就有了一个在服务器上将XML转换成
HTML的方法。

一个跨浏览器的解决方法
在前面的章节中,我们解释了如何用XSL在浏览器中将XML文档转换成HTML,窍门
就是让JavaScript使用一个XML解析器来进行转换。但是当浏览器不支持XML解析
器时,这种方法是不奏效的。要使XML数据对所有浏览器都可用,我们就必须在服
务器上转换XML文档,并将它作为纯HTML发送到浏览器。

这是XSL的另一个美妙之处。XSL的设计目的之一是使得在服务器上将数据从一种
格式转换成另一种格式成为可能,并将可读数据返回到所有未来的浏览器中。

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

以下是在服务器上转换XML文件所需要的简单源代码:

    <%
    'Load the XML
    set xml = Server.CreateObject("Microsoft.XMLDOM")
    xml.async = false
    xml.load(Server.MapPath("cd_catalog.xml"))
    'Load the XSL
    set xsl = Server.CreateObject("Microsoft.XMLDOM")
    xsl.async = false
    xsl.load(Server.MapPath("cd_catalog.xsl"))
    'Transform the file
    Response.Write(xml.transformNode(xsl))
    %>
代码的第一块创建Microsoft XML解析器(XMLDOM)的一个例示,并将XML文件装载
到内存中。代码的第二块创建解析器的另一个例示,并将XSL文档装载到内存。代
码的最后一行用XSL文档转换XML文档,并将结果返回浏览器

免责声明:文章转载自《XSL基础教程(二)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇selenium 常见问题整理。MD5算法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

jquery学习笔记(二):DOM元素操作

内容来自【汇智网】jquery学习课程 2.1 元素属性操作 1.获取元素的属性 语法:attr(name) 参数name表示属性的名称 2.设置元素的属性 单个属性设置语法:attr(key,value) 多个属性设置语法:attr({key0:value0,key1:value1}) 3.删除元素的属性 语法:removeAttr(name) 2.2...

CDATA(不应由XML解析器进行解析的文本数据)、CDATA的使用场景

1.1. CDATA: CDATA(Unparsed Character Data)指的是不应由XML解析器进行解析的文本数据。 因为XML解析器会将“<”(新元素的开始)和“&”(字符实体的开始)解析成具有特殊含义的字符,所以如果在文本中需要使用这些字符时,就必须使用实例引用去代替。但是有些文本,如JavaScript代码中会包含大量的“...

Scrapy进阶知识点总结(二)——选择器Selectors

1. Selectors选择器 在抓取网页时,您需要执行的最常见任务是从HTML源提取数据。有几个库可用于实现此目的,例如: BeautifulSoup是Python程序员中非常流行的Web抓取库,它基于HTML代码的结构构造Python对象,并且相当好地处理坏标记,但它有一个缺点:它很慢。 lxml是一个XML解析库(也可以解析HTML),它使用基于E...

Drawable

今天简单的介绍一下有关以下5中的应用: Statelistdrawable Layerdrawable Shapeddrawable Clipdrawable Animationdrawable 1. Statelistdrawable的应用: 描述:当使用此类型定义View的前景,背景图时由对象的当前状态的改变对应的图片也随之改名。 定义:XML的根...

node.js

JavaScript单线程的误解 在我接触JavaScript(无论浏览器还是NodeJS)的时间里,总是遇到有朋友有多线程的需求。而在NodeJS方面,有朋友甚至直接说到,NodeJS是单线程的,无法很好的利用多核CPU。 诚然,在前端的浏览器中,由于前端的JavaScript与UI占据同一线程,执行JavaScript确实为UI响应造成了一定程度上的麻...

Java Web项目案例之---登录和注册(精华版)

登录和注册(精华版) (一)实现功能 1.使用cookie记录登录成功的用户名,用户选择记住用户名,则用户再次登录时用户名自动显示 2.实现文件上传功能(上传文件的表单上传于普通的表单上传不同,必须是post,必须有value,enctype必须是multipart/form-data) 3.图片上传后的名称不能重复,使用随机生成的字符串(UUID) 4....