用jquery解析xml-错误的xml格式 [英] parse xml with jquery - bad xml format

查看:135
本文介绍了用jquery解析xml-错误的xml格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个xml文件:

<dist>
    <key>keynumber1</key>
    <string>value1</string>
    <key>keynumber2</key>
    <string>value2</string>
    <key>keynumber3</key>
    <string>value3</string>
    <key>keynumber4</key>
    <integer>value4</integer>
</dist>

我该如何用jquery这样解析:

how can i parse this with jquery like:

{ "dist": {"keynumber1":"value1", "keynumber2":"value2"}}

非常感谢您的帮助

推荐答案

第一步是使用jQuery使用$ .parseXML(str);解析xml.

First step is parsing xml with jQuery using $.parseXML(str);

然后我使用了由 David Welsh

    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;
        }
    }
} 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);
            }
            obj[nodeName].push(xmlToJson(item));
        }
    }
}
return obj;
};

这篇关于用jquery解析xml-错误的xml格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆