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文档,并将结果返回浏览器