原生JS读取xml

JS读取XML

    最近由于工作需要,研究了下原生js对xml文件的操作,网上提供的资源试了下,要不就是不满足要求,要不就不兼容主流浏览器,好在最后还是解决了。但是如果要使用JS读取跨域的资源,考虑到同源策略的限制,则需要根据自己实际情况去解决了。先分享代码如下:

var loadXML = function (xmlFile) {
    var xmlDoc;
    if (window.ActiveXObject) {
        xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
        xmlDoc.async = false;
        xmlDoc.load(xmlFile);
		
    }
    else{
        var xmlhttp = new window.XMLHttpRequest();
        xmlhttp.open("GET",xmlFile,false);
        xmlhttp.send(null);
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
            xmlDoc = xmlhttp.responseXML.documentElement;
        } 
    }
	return xmlDoc;
};
var checkXMLDocObj = function (xmlFile) {
    var xmlDoc = loadXML(xmlFile);
    if (xmlDoc == null) {
        alert('您的浏览器不支持xml文件读取,请使用IE5.0以上版本或firefox、chrome');
	}
    return xmlDoc;
}
xml2array = function(xmlDoc){
	var srcarr = new Array();
	var elements = xmlDoc.getElementsByTagName("Src");
	for (var i = 0; i < elements.length; i++) {
        var value = elements[i].getElementsByTagName("value")[0].firstChild.nodeValue;
        var name = elements[i].getElementsByTagName("name")[0].firstChild.nodeValue; 
		srcarr[''+name] = value;	
	}
	return srcarr;
};

    代码解释  1.loadXML(xmlfile)接受xml的url,需要放在web环境下,定义为公开资源;

            2.转换数组部分是根据自己实际情况编写的,可根据要读取文档的内容自行修改。


你可能感兴趣的:(原生JS读取xml)