源生javascript将xml转换成json格式
来源:互联网 发布:python 书籍推荐 编辑:程序博客网 时间:2024/06/05 16:16
这是我第一次写博客哈,代码可能不是很规范,可能会有一些小BUG。支持xml文件内嵌json格式支字符串。闲话不多说,直接上代码。
function xmlToJson(xml) { var obj = {}; if(xml.childNodes.length!=0&&xml.childNodes.length!=null){ //判断子节点为1个且为文本节点,将值赋给json对象,childNodes会把文本识别为文本节点所以取子节点的value值(即是文本节点的内容) if(xml.childNodes.length==1&&xml.childNodes.item(0).nodeType==3){ obj[xml.nodeName]=xml.childNodes.item(0).nodeValue.replace(/\s*$|^\s*/g,""); }else{ for(var i=0; i<xml.childNodes.length;i++){ var x=xml.childNodes.item(i); //标签里面有字符串又有标签时,处理该字符串 if(x.nodeType!=1){ var value_text=x.nodeValue.replace(/\s*$|^\s*/g,""); if(value_text!=""&&value_text!=null&&/^[\],:{}\s]*$/.test(value_text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@") .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]") .replace(/(?:^|:|,)(?:\s*\[)+/g, ""))){ obj.text=$.parseJSON(value_text); } else if(value_text!=""&&value_text!=null){ obj.text=value_text; } continue;} if(x.childNodes.length>1){//判断,子节点大于1的话肯定有元素节点 obj[x.tagName]=xmlToJson(x) } else if(x.childNodes.length==1){//子节点为1的话肯定是文本节点,子节点为0则为null var text= x.childNodes[0].nodeValue.replace(/\s*$|^\s*/g,""); //判断text是否为空且是否为json格式,是的话将其转换为json,否则将其赋值给json对象 if (text!=null&&text!=""&&/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@") .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]") .replace(/(?:^|:|,)(?:\s*\[)+/g, ""))){ obj[x.tagName] = $.parseJSON(text); }else{ obj[x.tagName]= text; } } } } } return obj;}
</pre><p>下面是xml文件</p><p><pre name="code" class="html"><?xml version="1.0" encoding="utf-8"?><animals><dog color='Black'><name>Rufus</name><breed>labrador</breed></dog><dag breed='whippet'>Adopted<name>Marty</name></dag><certificates>[{"traceInfo":{"检验机构名称":"新西兰CCIC","检验证书编号":"XI150002XIM","检验证书日期":"2015-08-21"}},{"original":{"发证机构":"NZ CHAMBERS OF COMMERCE INC.","编号":"22 2015 05654","日期":"2015-07-28"}},{"labInfo":{"实验室名称":"Eurofins NZ Laboratory Services Ltd./Analytica laboratories Ltd.","检测报告编号":"HAUORA_实验室检测报告_XI150002XIM","认可机构":"IANZ"}}]</certificates><cat color="White"><name>Matilda</name></cat></animals>下面是打印出来的json
有问题可以评论,我会抽时间来回复的。
1 0
- 源生javascript将xml转换成json格式
- 将String格式XML转换成JSON
- java将XML文档转换成json格式数据
- 将XML形式的数据转换成Json格式
- Java将XML转换成Json格式数据
- javascript 将xml字符串转换成json对象
- XML格式转换成JSON
- 利用JavaScript将XML转换为JSON
- JSON格式转换成XML格式
- C#将对象转换为xml或json格式
- 将文本转换成json格式
- 将list对象转换成json格式
- 将list对象转换成json格式
- 将对象转换成json格式
- 将properties转换成json格式
- 将字符串转换成json格式
- 将XML转换成HTML格式
- C#将字符串转换成XML格式
- 关于cell的重用标识符的问题
- java Map及Map.Entry详解
- C++primer第五版第三章学习笔记
- Android自定义相机超详细讲解
- 归并排序算法之Java实现
- 源生javascript将xml转换成json格式
- C++设计模式[五]适配器模式
- Linux命令——w
- 开发iOS应用要比开发安卓应用省时约30%
- Leetcode138: Partition List
- Leetcode sql算法题
- 简单邻接表构造图
- hdu1219
- NSNotificationCenter观察者模式