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>

 

posted @ 2018-01-03 16:29  pkyou  阅读(722)  评论(0编辑  收藏  举报