IE/火狐浏览器对JS,XML文件解析的不同

本文探讨了在使用XML时,火狐与IE浏览器的JavaScript解析支持存在差异的问题,并提供了在JSP页面中通过AJAX调用后台方法返回XML数据后,在JavaScript中解析XML数据的方法。重点介绍了如何解决不同浏览器对XMLDOM对象的支持问题,包括IE和Firefox的不同处理方式,并分享了解析XML数据的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在研究XML的时候,发现火狐与IE的javascript,解析XML支持各不相同。。。。而我的项目必须在这两个浏览器都能用,于是,需要整合不同了。。
大体流程是这样的:
在JSP页面,点击按钮后,通过ajax,跳入后台调用java方法,返回的是XML数据类似于“<a><b name="b"/></a>”,
接下来在javascript里解析XML数据,返回JSP。
过程是这样的:
首先,声明XMLDom,默认浏览器为IE,如果不行,则使用火狐
try{
 this.XMLDOM  = new ActiveXObject("Microsoft.XMLDOM");
}catch(e){
     try{
      this.XMLDOM = document.implementation.createDocument("", "", null);
     }catch(e){
      alert("'Microsoft.XMLDOM' created Error! " + e);
     }
}
接下来,ajax调用后台方法,返回数据,,,,这个就略了,假如返回的是<a><b name="b"/></a>;
然后,javascript解析该数据,假如返回的数据变量是responseXML,
 IE传统的方法就是使用刚才声明的XMLDOM,例如IE:XMLDOM.loadXML(responseXML),但是在火狐不支持,这就尴尬了,,,
 经过查资料,火狐使用XMLDOM.load(responseXML),但是这里的responseXML,应该是一个XML文件的路径,而不是字符串类型的数据,,至少我测试的时候没有通过,,
 接下来就找到了另外一种方式:
  var oParser = new DOMParser();
       var oXmlDom = oParser.parseFromString(xmlhttp.responseText,"text/xml");
 这个问题就解决了,,,
然后就是解析的事了,,注意在获取节点属性的时候,格式是这样的:element.getAttribute("name");
IE以前是用element.attributes.getNamedItem("id").text,但是这里不支持

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值