Jquery 实现xml转json

代码

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    </head>

    <body>
    </body>

</html>

<script type="text/javascript">
    function fozzz(myXml, myJson) {

        $(myXml).each(function() {

            //新节点
            var tempJson = {}

            //节点的属性
            var tempJsonSon = {}

            //节点的孩子节点
            var tempArr = []

            //节点名字
            tempJson[this.nodeName] = tempJsonSon

            //节点属性
            attrs = this.attributes
            for(i = 0; i < attrs.length; i++) {

                tempJsonSon[attrs[i].nodeName] = attrs[i].nodeValue

            }

            //没有子节点,直接输出文本
            if($(this).children().length == 0) {
                tempJsonSon["text"] = $(this).text()
            } else {
                //有子节点,嵌套循环
                tempJsonSon["son"] = tempArr
                fozzz($(this).children(), tempArr)
            }

            //添加到一个数组中
            myJson.push(tempJson)

        })

    }
    $.get("china.xml", function(myXml) {
        //结果数组
        myJson = []

        //实现方法
        fozzz(myXml.firstChild, myJson)

        //输出json格式内容
        document.write(JSON.stringify(myJson))
    })
</script>

结果

-----------xml----------------
<china>
    <province name="四川省">
        <city>成都</city>
        <city>绵阳</city>
    </province>
    <province name="吉林省">
        <city>长春</city>
        <city>吉林市</city>
    </province>
</china>
----------json-------------
[
    {
        "china": {
            "son": [
                {
                    "province": {
                        "name": "四川省",
                        "son": [
                            {
                                "city": {
                                    "text": "成都"
                                }
                            }, {
                                "city": {
                                    "text": "绵阳"
                                }
                            }
                        ]
                    }
                }, {
                    "province": {
                        "name": "吉林省",
                        "son": [
                            {
                                "city": {
                                    "text": "长春"
                                }
                            }, {
                                "city": {
                                    "text": "吉林市"
                                }
                            }
                        ]
                    }
                }
            ]
        }
    }
]

网站验证
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值