js转换对象为xml
程序员文章站
2023-11-17 13:10:10
本代码解决这两个问题:
1.已知js对象没有类名概念,所以转换时要手动指定*节点名称
2.还有数组内的元素如果是对象类型,需要配置此数组元素的节点名称
va...
本代码解决这两个问题:
1.已知js对象没有类名概念,所以转换时要手动指定*节点名称
2.还有数组内的元素如果是对象类型,需要配置此数组元素的节点名称
var xmlhelper=function(){ var _arraytypes={} var _self=this; /* *转换对象为xml *@obj 目标对象 *@rootname 节点名称 *@arraytypes 配置数组字段子元素的节点名称 */ this.parsetoxml=function(obj,rootname,arraytypes){ if(arraytypes){ _arraytypes=arraytypes; } var xml=""; if(typeof obj!=="undefined"){ if(array.isarray(obj)){ xml+=parsearraytoxml(obj,rootname); }else if(typeof obj==="object"){ xml+=parseobjecttoxml(obj,rootname); }else{ xml+=parsegeneraltypetoxml(obj,rootname); } } return xml; } var parseobjecttoxml=function(obj,rootname){ if(typeof rootname==="undefined"||!isnan(number(rootname))){ rootname="object"; } var xml="<"+rootname+">"; if(obj){ for(var field in obj){ var value=obj[field]; if(typeof value!=="undefined"){ if(array.isarray(value)){ xml+=parsearraytoxml(value,field); }else if(typeof value==="object"){ xml+=_self.parsetoxml(value,field); }else{ xml+=parsegeneraltypetoxml(value,field); } } } } xml+="</"+rootname+">"; return xml; } var parsearraytoxml=function(array,rootname){ if(typeof rootname==="undefined"||!isnan(number(rootname))){ rootname="array"; } var xml="<"+rootname+">"; if(array){ var itemrootname=_arraytypes[rootname]; array.foreach(function(item){ xml+=_self.parsetoxml(item,itemrootname); }); } xml+="</"+rootname+">"; return xml; } var parsegeneraltypetoxml=function(value,rootname){ if(typeof rootname==="undefined"||!isnan(number(rootname))){ rootname=typeof value; } var xml="<"+rootname+">"+value+"</"+rootname+">"; return xml; } } //===========测试========== var xmlhelper=new xmlhelper(); //示例1 var testobj={ field1:"1", field2:true, field3:[{a:1},{a:2}] } console.log(xmlhelper.parsetoxml(testobj,"testobj",{field3:"arrayitem"})); //输出:<testobj><field1>1</field1><field2>true</field2><field3><arrayitem><a>1</a></arrayitem><arrayitem><a>2</a></arrayitem></field3></testobj> console.log("================================================"); //示例2 var testobj2=[1,2,3]; console.log(xmlhelper.parsetoxml(testobj2,"testobj2")); //输出:<testobj2><number>1</number><number>2</number><number>3</number></testobj2>
此转换代码有使用限制
对象中值为数组的字段名最好不要一样
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
推荐阅读
-
js转换对象为xml
-
JS实现的Object数组去重功能示例【数组成员为Object对象】
-
图片转换js:img对象,file对象,base64,canvas对象,以及图片压缩方式讲解
-
jQuery.parseJSON(json)将JSON字符串转换成js对象
-
JS高级---为内置对象添加原型方法
-
Codeigniter通过SimpleXML将xml转换成对象的方法
-
js 对 只包含简单类型数据的对象 为元素 组成的数组 进行去重
-
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
-
JS判断是否为JSON对象及是否存在某字段
-
nodejs实现解析xml字符串为对象的方法示例