JS加载&解析XML文件,浏览器兼容
# JS加载XML,浏览器之间有差异,代码如下
this.createXMLDom = function() { var xmldoc; var xmlFile = "XXXXXXXXX.xml"; if (window.ActiveXObject) { xmldoc = new ActiveXObject("Microsoft.XMLDOM"); xmldoc.async = false; //和FireFox一致,设为true; xmldoc.preserveWhiteSpace = true; xmldoc.load(xmlFile); } //firefox else if (navigator.userAgent.indexOf("Firefox") > 0) { xmldoc = document.implementation.createDocument("", "doc", null); xmldoc.async = false; xmldoc.load(xmlFile); } //chrome else { var xmlhttp = new window.XMLHttpRequest(); xmlhttp.open("GET", xmlFile, false); xmlhttp.send(null); if (xmlhttp.readyState === 4) { xmldoc = xmlhttp.responseXML.documentElement; } } return xmldoc; }
# 解析XML
//加载XML文件 var xmlDom = _this.createXMLDom(); var elements = xmlDom.getElementsByTagName("data"); var data = ""; for (var i = 0; i < elements.length; i++) { var name = elements[i].getElementsByTagName("name")[0].firstChild.nodeValue; var path = elements[i].getElementsByTagName("path")[0].firstChild.nodeValue; data += "mingcen:"; data += name; data += " path:"; data += path; data += " "; } alert(data);
# 示例XML文件
<?xml version="1.0" encoding="gb2312"?> <root> <data id="1"> <name>formal</name> <path>XXXXXXXXXXXXX</path> </data> <data id="2"> <name>test</name> <path>YYYYYYYYYYYYY</path> </data> </root>