国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

js轉(zhuǎn)換對象為xml

2019-11-19 17:31:42
字體:
供稿:網(wǎng)友

本代碼解決這兩個問題:

1.已知js對象沒有類名概念,所以轉(zhuǎn)換時要手動指定頂級節(jié)點(diǎn)名稱

2.還有數(shù)組內(nèi)的元素如果是對象類型,需要配置此數(shù)組元素的節(jié)點(diǎn)名稱

var XmlHelper=function(){ var _arrayTypes={} var _self=this; /* *轉(zhuǎn)換對象為xml *@obj 目標(biāo)對象 *@rootname 節(jié)點(diǎn)名稱 *@arraytypes 配置數(shù)組字段子元素的節(jié)點(diǎn)名稱 */ 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();//示例1var 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("================================================");//示例2var testobj2=[1,2,3];console.log(xmlhelper.parseToXML(testobj2,"testobj2"));//輸出:<testobj2><number>1</number><number>2</number><number>3</number></testobj2>

此轉(zhuǎn)換代碼有使用限制

對象中值為數(shù)組的字段名最好不要一樣

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持武林網(wǎng)!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宝应县| 丁青县| 丰都县| 军事| 北安市| 平邑县| 聊城市| 抚顺市| 会东县| 图木舒克市| 邳州市| 浦县| 福贡县| 贵南县| 阿瓦提县| 东辽县| 新余市| 辉南县| 阜康市| 永善县| 铅山县| 巴林右旗| 交城县| 衡东县| 报价| 崇礼县| 罗平县| 彩票| 曲沃县| 旌德县| 江西省| 义马市| 龙岩市| 静安区| 黄骅市| 桂平市| 平武县| 金昌市| 丰顺县| 南陵县| 罗甸县|