`

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

阅读更多

最近在研究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,但是这里不支持

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics