客户端XSL:如何用XML解析器在客户机上将XML文档转换成HTML文档。
一个JavaScript的解决方法
在前文中,我们解释了如何用XSL将一个文档从XML转换成HTML。窍门就是向XML文件中增加一个XSL样式表,然后让浏览器来进行转换。即使这种方法能奏效,在XML文件中包含一个样式表引用也并非令人满意的方法,并且在不支持XSL的浏览器上这种方法还不能奏效。
一个更通用的方法应该是用一个JavaScript来进行从XML到HTML的转换。使用一个JavaScript,就更有以下可能性:
允许JavaScript进行浏览器细节测试;
根据浏览器和用户需求使用不同的样式表。
这就是XSL的美妙之处。XSL设计目的之一就是使数据从一个格式转换成另一个格式成为可能,从而支持不同的浏览器和不同的用户需求。
客户端XSL转换将成为未来浏览器工作任务的一个主要部分,我们还将看到专业化浏览器市场的成长,比如Braille、发声网络、网络打印机、手持PC、移动电话等。
XML文件和XSL文件
现在重新来看看前面章节中的XML文档:
<?xml version="1.0"?>
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
.
.
.
还有附带的XSL样式表:
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>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>
要确保XML文件没有对XSL文件的引用,XSL文件也没有对XML文件的引用。注意:上面的句子说明一个XML文件可以用许多不同的XSL文件进行转换。
在浏览器中将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文件和XSL文件
现在来重新看看前面章节中的XML文档:
<?xml version="1.0"?>
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
.
.
.
如果使用的是Internet Explorer 5.0或更高版本,可以点击这里查看 XML文件。
再看看伴随的XSL样式表: <?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>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>
如果使用的是Internet Explorer 5.0或更高版本,可以点击这里查看 XSL文件。
以上XSL文档的语法在前面章节中已经解释过了,因此这里不再做解释。但是要确保XML文件没有对XSL文件的引用,XSL文件也没有对XML文件的引用。同时请注意:上面的句子表明一个服务器上的XML文件可以用许多不同的XSL文件进行转换。
在服务器端将XML转换成HTML
以下是在服务器上转换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基础教程 从XSLT样式表调用 JavaScript XSLT 是什么类型的语言 XML认证教程,第 4 部分 XSL样式单
一个跨浏览器的解决方法 ...在服务器上进行XSL转换正在成为未来Internet信息服务器工作任务的一个主要部 分,同时我们将看到专用浏览器市场的发展,如:Braille、有声网络、网络打印 机、手持PC、移动电话等。
一篇非常不错的xsl简易教程,希望对您有所帮助
XSL基础、 函数、 元素参考手册、 学习笔记
培训时整理的XML、XSL的学习笔记 xml xsl基础
NULL 博文链接:https://xx371557412.iteye.com/blog/1320913
《XML 基础教程》系统地阐述了XML的基本概念和语法规则,介绍了如何用DTD与XML Schema来确保XML文档的有效性,讲述了使用CSS与XSL样式表来显示和转换XML文档的各个步骤,探讨了使用DSO与DOM访问XML文档的各种方法。...
XML简介 XML属性和实体 XML的未来 Mozilla - Netscape源代码 SMIL:多媒体标记 用WDDX交换数据 理解XSL 最新的技术-XSS,你想了解吗?
XML基础教程-电子教案...XML基础教程、第2章 XML语法、第3章 使用DTD规范XML文档、第4章 使用CSS格式XML文档、第5章 使用XSL转换XML文档、第6章 使用DSO显示XML文档、第7章 使用DOM访问XML文档、第8章 XML网络应用实例
XML基础教案ppt,XML基础教程new源代码
25 第十二章:格式化XML(一) 36 第十三章:格式化XML(二) 38 第十四章:XML的典型运用(一) 52 第十五章:XML的运用(二) 58 第十六章:XML的运用(三) 60 第十七章:如何使用XSL和正则...
可扩展标记语言(XML)是由万维网联盟(W3C)发布的用于网页设计和数据交换的新技术,具有良好的...最后,本书向读者展示了XML在不同领域中的应用实例,并在附录中给出了XML参考资料以及XML 1.0规范第二版的完整内容。
领先的 Web 技术教程 - 全部免费 在w3school,你可以找到你所需要的所有的网站建设教程。 从基础的HTML到XHTML,乃至进阶的XML、SQL、数据库、多媒体和WAP。 HTML教程 HTML XHTML CSS TCP/IP XML教程 XML DTD...
随着internet的发展,xml作为它不可或缺的一部分,充当着至关重要的作用,作为一个程序员,现在还不了解XML,那你太落伍了。这里的两本书都是基础教程,可供参考[推荐]
包含HTML教程、浏览器脚本、服务器脚本、XML教程、Web Services、.NET分类,具体内容如下:HTML、HTML5、XHTML、CSS、CSS3、TCP/IP、JavaScript、HTML DOM、jQuery、jQuery Mobile、AJAX、JSON、DHTML、E4X、WML...
第1章引论.ppt 第2章HTML基础.ppt 第3章XML基础.ppt 第4章XML文档类型定义.ppt 第5章XMLSchema结构.ppt 第6章层叠样式表.ppt ...第8章XSL转换.ppt 第9章XML文档对象模型-DOM.ppt 第10章XML编程技术.ppt
领先的 Web 技术教程,在w3school,你可以找到你所需要的所有的网站建设教程。 从基础的HTML到XHTML,乃至进阶的XML、SQL、数据库、多媒体和WAP。 完整的网站技术参考手册 我们的参考手册涵盖了网站技术的方方面面。...
C#完整教程以下是目录: 第一章 C#语言基础 5 1.1 C#语言特点 5 1.2 编写控制台应用程序 6 1.3 类的基本概念 10 1.4 C#的数据类型 13 1.5 运算符 20 1.6 程序控制语句 23 1.7 类的继承 26 1.8 类的成员 28 1.9 类的...
介绍了XML的基础知识以及代码演示 以及高级的分支
《计算机应用基础》试题二 (省编Excel PowerPoint多媒体软件) 注意事项: 本试卷满分100分,考试时间90分钟。 将卷I答案填在卷II相应的框格内。 卷I、卷II分别收交。 卷I 一、填空题:(共12题,每空1分,共15分)...