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

首頁 > 語言 > JavaScript > 正文

js轉換對象為xml

2024-05-06 15:11:17
字體:
來源:轉載
供稿:網友

本代碼解決這兩個問題:

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();//示例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>

此轉換代碼有使用限制

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

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持錯新站長站!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 漾濞| 华安县| 浠水县| 沙洋县| 徐闻县| 临西县| 扶沟县| 新兴县| 溧阳市| 雅安市| 贺兰县| 金华市| 弋阳县| 保定市| 宁陵县| 离岛区| 苍梧县| 新龙县| 桂林市| 班戈县| 克拉玛依市| 宁蒗| 宁海县| 嘉定区| 民权县| 易门县| 砚山县| 青冈县| 麻江县| 汤原县| 巴青县| 始兴县| 天台县| 遵化市| 琼结县| 双柏县| 博野县| 宜昌市| 镇康县| 青海省| 洛扎县|