js实现的xml对象转json功能示例

前端之家收集整理的这篇文章主要介绍了js实现的xml对象转json功能示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了js实现的xml对象转json功能分享给大家供大家参考,具体如下:

支持无限级别xml结构对象转json,并且支持任意标签属性转json(兼容ie8等浏览器)

xml字符串转xml对象:

0&&firstnodeName!="#text")||_attrs.length>0){ var _childs=nodechilds; var _childslength=nodechilds.length; var _fileName_=""; if(undefined!=_attrs){ var _attrslength=_attrs.length; for(var i=0; i<_attrslength; i++){//解析xml节点属性 var attrname=_attrs[i].nodeName; var attrvalue=_attrs[i].nodeValue; _itemobj[attrname]=attrvalue; } } for (var j = 0; j < _childslength; j++) {//解析xml子节点 var _node = _childs[j]; var _fildName = _node.nodeName; if("#text"==_fildName){break;}; if(_itemobj[_fildName]!=undefined){//如果有重复的节点需要转为数组格式 if(!(_itemobj[_fildName] instanceof Array)){ var a=_itemobj[_fildName]; _itemobj[_fildName]=[a];//如果该节点出现大于一个的情况 把第一个的值存放到数组中 } } var _fildValue=getAllAttrs(_node); try{ _itemobj[_fildName].push(_fildValue); }catch(e){ _itemobj[_fildName]=_fildValue; _itemobj["length"]=1; } } }else{ _itemobj=(node.textContent==undefined)?node.text:node.textContent; } return _itemobj; }; if(nodename){ nodenames=nodename.split("/") } for(var i=0;i0){ itemobj[item.nodeName]=getAllAttrs(item); }else{ itemobj[item.firstChild.nodeName]=getAllAttrs(item.firstChild); } } }); if(nodenames.length>1){ itemobj=itemobj[nodenames[nodenames.length-1]]; } if(isarray&&!(itemobj instanceof Array)&&itemobj!=undefined){ itemobj=[itemobj]; } return itemobj; };

使用方法:

" + "张三" + "00001" + "" + "" + "李四" + "00002" + "" + "" + "李四" + "00002" + "" + ""; var xmlobj=loadXml(xmlstr);

参数设置:

(1) xmltojson(xmlobj);//返回结果如下

(2)xmltojson(xmlobj,'USERS/USER',true);返回结果如下:

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

在线XML/JSON互相转换工具:

在线格式化XML/在线压缩XML:

XML在线压缩/格式化工具:

XML代码在线格式化美化工具:

更多关于JavaScript相关内容可查看本站专题:《》、《》、《》、《》、《》、《》及《用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

猜你在找的JavaScript相关文章