码迷,mamicode.com
首页 > 编程语言 > 详细

使用 JavaScript 将 XML 转成 JSON

时间:2017-06-12 22:39:40      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:turn   test   array   isarray   undefined   http   end   obj   nod   

function xmlToJson(xml) {
    // Create the return object
    var obj = {};
    if (xml.nodeType == 1) { // element
        // do attributes
        if (xml.attributes.length > 0) {
            obj["@attributes"] = {};
            for (var j = 0; j < xml.attributes.length; j++) {
                var attribute = xml.attributes.item(j);
                obj["@attributes"][attribute.nodeName] = attribute.nodeValue;
            }
        }
        obj[‘@textContent‘] = xml.textContent;

    } else if (xml.nodeType == 3) { // text
        obj = xml.nodeValue;
    }
    // do children
    if (xml.hasChildNodes()) {
        for(var i = 0; i < xml.childNodes.length; i++) {
            var item = xml.childNodes.item(i);
            var nodeName = item.nodeName;
            if (typeof(obj[nodeName]) == "undefined") {
                obj[nodeName] = xmlToJson(item);
            } else {

                if (typeof(obj[nodeName].length) == "undefined") {
                    var old = obj[nodeName];
                    obj[nodeName] = [];
                    obj[nodeName].push(old);
                }

                if(Array.isArray(obj[nodeName])){
                    obj[nodeName].push(xmlToJson(item));
                }
            }
        }
    }
    return obj;
};















var testUrl = ‘http://backmisc-beta.somaapp.com/static/team_publish/kingdom_fighter_letter/index_ar.xml‘;
var xmlhttp = new window.XMLHttpRequest();  
xmlhttp.open("GET",testUrl,false);  
xmlhttp.send(null);  
xmlDoc = xmlhttp.responseXML.documentElement; 



xmlToJson(xmlDoc)

  

使用 JavaScript 将 XML 转成 JSON

标签:turn   test   array   isarray   undefined   http   end   obj   nod   

原文地址:http://www.cnblogs.com/lhp2012/p/6995026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!