客户端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基础教程知识点 #### 一、XSL与XML的关系 XSL(Extensible Stylesheet Language,可扩展样式表语言)是一种用于控制XML文档显示的标记语言。它主要用于将XML文档转换为其他格式,例如HTML或PDF。XSL允许...
**XSL基础教程:从XSLT样式表调用JavaScript** 在深入了解如何从XSLT样式表调用JavaScript之前,让我们首先理解XSLT的基本概念。XSLT(Extensible Stylesheet Language Transformations)是一种XML方言,用于转换...
1. **XSL基础概念** - **XSLT**:XSL Transformations,XSL的主要部分,用于转换XML文档。 - **XSL样式表(XSLT Stylesheets)**:定义了转换规则,描述如何将XML文档转换为其他形式。 - **XPath**:XML Path ...
**XSL基础教程以及元素参考手册** XSL(Extensible Stylesheet Language)是一种用于转换XML(eXtensible Markup Language)文档的语言。它允许开发者通过定义样式规则来控制XML数据的呈现方式,使得数据能够在不同...
一篇非常不错的xsl简易教程,希望对您有所帮助
### XSL 入门教程详解 #### 一、XML与XSL概述 随着互联网的快速发展,数据交换的需求日益增加,HTML作为一种标记语言逐渐暴露出其局限性,尤其是在内容与表现形式混合方面。为了克服这些限制,XML作为一种元标记...
在学习和使用XML时,了解HTML和CSS的基础是必要的,因为它们可以帮助理解XML数据的结构和表现。此外,JavaScript、VBScript等脚本语言,以及数据库理论和SQL知识也会对处理XML数据大有裨益。XML文档中的标记必须成对...
**XSLT基础教程** XSLT,全称为Extensible Stylesheet Language Transformations,是一种用于转换XML(Extensible Markup Language)文档的语言。它基于XPath,主要用于将XML数据转换成其他形式,如HTML、PDF或者纯...
二、XSL模板与匹配模式 在XSL中,模板是进行转换的核心元素。通过模板,我们可以定义如何处理特定的XML元素或属性。匹配模式是模板的一部分,它指定模板应用于哪些XML节点。例如,`<xsl:template match=...
这本“XML HTML CSS XSL Web编程实作教程”旨在通过实践教学的方式,帮助读者深入理解和掌握这些技术。 XML是一种用于标记数据的语言,它的主要特点是结构化和自描述性。XML通过定义一套规则,使得数据可以被结构化...
压缩包内的文件“XSL(一)”可能是第一部分的学习资料,可能包含了一些基础的XSLT教程,例如解释XSLT的工作原理,展示如何创建基本的模板,以及演示如何使用XSLT进行简单的XML到HTML的转换。这些内容对于初学者来说...
在本教程中,我们将深入探讨XSL的核心概念、语法以及如何利用W3School的资源进行学习。** XSL由三个主要部分组成: 1. **XSL Transformations (XSLT)**:它是XSL的核心,负责XML文档的转换。XSLT使用模板来匹配XML...
1. **XSL简明教程.chm**:这是一个帮助文件,通常包含了XSL的基础知识、语法和实例。用户可以通过查阅此文件快速掌握XSL的关键概念,例如选择符、模板、变量、函数等。 2. **XSL学习.doc**:可能是作者编写的详细...
这个"XML HTML CSS XSL Web编程实作教程"很可能是涵盖这些技术的实践指导,帮助学习者掌握Web开发的基本技能。文件名中出现的".pdg"后缀通常关联于电子书格式,可能是某个特定阅读器使用的文件类型。"bookinfo.dat...
本教程将详细介绍如何利用JavaScript、XML和XSL技术来构建这样的树形目录。 首先,我们需要理解这三种技术的基础概念: 1. **JavaScript**:这是一种运行在客户端的脚本语言,主要用于网页的交互性和动态效果,可以...
HTML的XML基础教程TXT XML(eXtensible Markup Language)是一种可扩展的标记语言,设计用于传输和存储数据,其主要目标是使数据独立于显示方式和应用程序。与HTML不同,HTML主要用于显示数据,而XML则专注于数据的...
在本“XML基础教程”中,我们将深入探讨XML的基本概念、语法、验证以及它在网络应用中的作用。 首先,让我们从“第1章 XML概述.ppt”开始。这一章将介绍XML的基本理念,包括为什么需要XML,它与HTML的区别,以及XML...
这份手册通常会涵盖XSL的基础概念,如选择器(selectors)、模板(templates)、变量(variables)、函数(functions)等,以及如何使用XSLT(XSL Transformation)来转换XML文档。此外,手册可能还会涉及XSL-FO...
通过这个“xml基础教程”PPT,你将能够学习到XML的基础语法、数据组织方式以及如何利用相关技术处理XML文档。实践是检验真理的唯一标准,建议结合提供的源码进行实际操作,以巩固理论知识。同时,持续学习和理解XML...