1. 程式人生 > >JS加載&解析XML文件,瀏覽器兼容

JS加載&解析XML文件,瀏覽器兼容

enc dom eat min test ldo dex new eval

# JS加載XML,瀏覽器之間有差異,代碼如下

    this.createXMLDom = function() {
        var xmldoc;
        var xmlFile = "XXXXXXXXX.xml";
        if (window.ActiveXObject) {
            xmldoc = new ActiveXObject("Microsoft.XMLDOM");
            xmldoc.async = false;
            //為了和FireFox一至,這裏不能改為False;
            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>

JS加載&解析XML文件,瀏覽器兼容