开发者社区


Web服务 | ASP/ASP.Net | JSP | PHP/Perl | 网站设计
首页 - WEB技术
Web技术
全文搜索:   

将XML载入基于Gecko的浏览器
作者: Builder.com
2004-05-14 17:08:41


本文译自Builder.com,未经许可请勿转载

对一群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服务。从根本上看,下一步做什么的唯一限制只是你的想象力。



责任编辑:李宁

欢迎评论投稿

声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
近期相关报道:
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
CNET NETWORKS 中国: 爱卡汽车网 | CNET科技资讯网 | e询网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | PChome | SPN | 网友世界 | ZDNet China | 中关村在线
CNET NETWORKS 美国: BNET | CNET.com | CNET Download.com | CNET News.com | CNET Reviews | CNET Shopper.com | GameSpot | MP3.com | mySimon | Release 1.0 | Search.com | TechRepublic | TV.com | Webshots | ZDNet
Copyright (c) 2006 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号