时间:2021-07-01 10:21:17 帮助过:5人阅读
不同的浏览器对xml的解析方式不同,根据目前主流浏览器大致分三类:
第一类,ie祖宗: js 提供用于创建 Automation对象的方法,new ActiveXObject("Microsoft.XMLDOM") ;
第二类:firefox,opera:用构造函数 DOMParser()实例化DOMParser对象,解析xml文本,并返回xml Document对象;
第三类:chrome,safari:由于chrome不支持load方法,故用http协议,XMLHttpRequest对象。
代码:
function loadXML(){ var xmlDoc; try{ //IE xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); }catch(e){ //firefox,opera xmlDoc = document.implementation.createDocument("","",null); } try{ xmlDoc.asyc = false; //是否异步调用 xmlDoc.load("xxx.xml"); //文件路径 }catch(e){ //chrome var xmlhttp = new window.XMLHttpRequest(); xmlhttp.open("GET","xxx.xml",false); //创建一个新的http请求,并指定此请求的方法、URL以及验证信息 xmlDoc = xmlhttp.responseXML; } return xmlDoc; }
返回的xmlDoc对象,其中属性documentElement包含了xml节点的各种值,可以console出来慢慢找。
ps:如果是读取本地xml,chrome默认是禁止访问本地文件,需要增加启动参数 --allow-file-access-from-files。