JS实现xml和json(也可看做对象)互转

最近有个前端的需求: 解析后台xml, 并添加删除和修改, 然后传给后台, 思来想去, 最简单的办法就是利用xml和对象互转, 即从后台读取xml传到前台并形成表格(已有代码,或者用对象生成表格), 前台可编辑表格(包括添加,删除),提交时将表格数据存入对象中, 转为json, 再转为xml,最后以字符串形式传给后台写入文件.

逻辑图:

Created with Raphaël 2.1.0 后台 后台 前台 前台 xml->表格 表格->对象->xml->字符串

代码:

<!-- 思路:xml转成表格,操作表格,然后再将表格内容收进对象里,对象转为json再转xml传给后台 -->

<html>
<body>

<script type="text/javascript">
var xml = "<root><first>123</first><second><error>Nothing</error><haha>Something</haha></second></root>";
var parseXMLJSON = {
    parse2json: function(xmlStr){
        var root = document.createElement('XMLROOT');
        root.innerHTML = xmlStr;
        return this.parse(root);
    } ,
    parse: function(node){
        var result = {};
        for(var i = 0 ; i < node.childNodes.length ; ++i){
            if(node.childNodes[i].nodeType==1){
                result[node.childNodes[i].nodeName.toLowerCase()] = this.parse(node.childNodes[i]);
            }else if(node.childNodes[i].nodeType==3){
                return node.childNodes[i].nodeValue;
            }
        }
        return result;
    } ,
    parse2xml: function(data){
        var xmldata = '';
        for(var i in data){
            xmldata+= '<'+i+'>';
            if(typeof data[i]=='object'){
                xmldata+= this.parse2xml(data[i]);
            }else{
                xmldata+= data[i];
            }
            xmldata+= '</'+i+'>';
        }
        return xmldata;
    }
};
var jsonData = parseXMLJSON.parse2json(xml);
var xmlData = parseXMLJSON.parse2xml(jsonData);
alert('xml to json: ' + JSON.stringify(jsonData));
alert('json to xml: ' + xmlData);
</script>

</body>
</html>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值