正 文

将XML载入基于Gecko的浏览器


www.7dspace.com  更新日期:2005-11-4 2:02:41  七度空间


对一群Web开发者提到客户面XML时,其大多数都会想到微软的Internet Explorer,以及MSXML2与MSXML3中的二者之一。但就客户面XML支持其本身来说,如今我们多了一种名为Gecko的选择。不能仅仅因为没有人在你面前赞扬Mozilla和 Netscape的XML支持特性就认为这样的支持并不存在。事实上,Gecko支持XML, XSLT, XPath, XMLHTTP, SVG (Scalable Vector Graphics) 和MathML。仅存的遗憾在于Gecko的XML支持特性几乎无人知晓,而我希望通过我的努力使此局面有所改善。

JavaScript and XML

由于Gecko像XML data islands一样,并不依赖于非标准扩展名,所以唯一调用Gecko的XML强大功能的方法是使用JavaScript (ECMAScript)。这样使用JavaScript其中一个优点在于如果在试图获得一种方法时出了问题,这时常会有另一种方法完成这项工作。另一个例子是第一次装载XML文档会相对简单。在我使用Mozilla时,我发现了三种无需费多少劲便可装载一个XML文档的方法。

装载XML文档

第一种方法是强制编译文档。这类文档使用XML DOM程序化地创建了XML文档节点。这种方法的问题在于如Listing A所示,它不够灵活。对文档的每次改变都需要更改JavaScript。当这项工作会在几年后引发工作安全问题时,谁还会想要?
    第二种装载XML文档的方法更常见些,即简单的使用XML DOM的装载方法。这有点类似于装载Microsoft MSXML,但仍有所不同。第一点区别在于Gecko既不支持微软的async extension也不支持XML DOM。所以,不同于JavaScript停下来“玩儿手指”般等待文档装载或检查readystate,Gecko使用一种事件装载处理程序。一旦如Listing B 所示,文档被装载并能继续处理下去,事件装载处理程序就开始工作。

相关软件

最后装载XML文档的方法是针对象我这样打算让JavaScript能“玩儿手指”般等待文档装载者的。没有使用装载的办法,XMLHTTP被用来如 Listing C 所示载入文档。其结果非常类似于微软的async特性。

下一步是什么?

不管使用什么方法,当XML文档已经被装载后,现在的问题是怎样处理它?由于Gecko支持XSLT,一种办法是迅速创建XHTML以大幅增加 DHTML的动态部分。另一种可能是使用SOAP来访问服务器上的Web服务。从根本上看,下一步做什么的唯一限制只是你的想象力。


上一篇:如何阻止缓存投毒攻击
下一篇:使用SAX和Java解决XML实体
作者:  来源:开发者在线 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐