多浏览器兼容的Javascript读取XML节点方法

最近才接触XML这个东西,网上有各种大神都写过js读取XML的方法,但是发现多数都是转载的,而且会发现IE中运行OK,但是到别的浏览器中跑瞬间bug掉了。或许这个问题早就有其他大神解决过。我就在这里谈一下我的经验,分享一下的拙略之作好了~


另外如果你根本不知道树形结构或者XML文件的结构的话,推荐去学习一下XML的节点与元素关系


刚才说到浏览器兼容的问题,其实这个不怪浏览器,浏览器大战也没有影响到这里。问题出在读取方式上。先来看一段常用的XML读取的代码

function loadXmlFile(xmlFile){
	var xmlDom = null;
	if (window.ActiveXObject){
		xmlDom = new ActiveXObject("Microsoft.XMLDOM");
		//xmlDom.loadXML(xmlFile);//XML String
		xmlDom.load(xmlFile);//XML file
		LOADER_TYPE = 0;
		browserDetection();
	}else if (document.implementation && document.implementation.createDocument){
		var xmlhttp = new window.XMLHttpRequest();
		xmlhttp.open("GET", xmlFile, false);
		xmlhttp.send(null);
		xmlDom = xmlhttp.responseXML;
		LOADER_TYPE = 1;
	}else{
		xmlDom = null;
	}
	return xmlDom;
}

这段代码就是最通用的载入XML文件的方法。其中不难看出,方法会先判断浏览器是否支持ActiveXObject方法,这个玩意是微软的其他厂家的浏览器并不支持。当ActiveX方法走不通的时候,就会判断浏览器是否支持XMLHttpRequest方法。而在读取XML节点上这两个方法的结构是截然不同的。

先来看一下读取后的结构

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值