js轉(zhuǎn)換對象為xml
更新時間:2017年02月17日 14:44:12 作者:lopcomvir
本文主要介紹了js轉(zhuǎn)換對象為xml的方法。具有很好的參考價值,下面跟著小編一起來看下吧
本代碼解決這兩個問題:
1.已知js對象沒有類名概念,所以轉(zhuǎn)換時要手動指定頂級節(jié)點名稱
2.還有數(shù)組內(nèi)的元素如果是對象類型,需要配置此數(shù)組元素的節(jié)點名稱
var XmlHelper=function(){ var _arrayTypes={} var _self=this; /* *轉(zhuǎn)換對象為xml *@obj 目標對象 *@rootname 節(jié)點名稱 *@arraytypes 配置數(shù)組字段子元素的節(jié)點名稱 */ 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>
此轉(zhuǎn)換代碼有使用限制
對象中值為數(shù)組的字段名最好不要一樣
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
您可能感興趣的文章:
- 詳解XML,Object,Json轉(zhuǎn)換與Xstream的使用
- Python 提取dict轉(zhuǎn)換為xml/json/table并輸出的實現(xiàn)代碼
- 如何在JS中實現(xiàn)相互轉(zhuǎn)換XML和JSON
- php實現(xiàn)xml與json之間的相互轉(zhuǎn)換功能實例
- C#中使用JSON.NET實現(xiàn)JSON、XML相互轉(zhuǎn)換
- JavaScript實現(xiàn)將xml轉(zhuǎn)換成html table表格的方法
- C# XML與Json之間相互轉(zhuǎn)換實例詳解
- js字符串轉(zhuǎn)換成xml對象并使用技巧解讀
- Jsp結(jié)合XML+XSLT將輸出轉(zhuǎn)換為Html格式
相關(guān)文章
BootStrap Table前臺和后臺分頁對JSON格式的要求
Bootstrap是一款前端非常流行的框架,其中的表格更為大家經(jīng)常使用。下面通過本文給大家介紹BootStrap Table前臺和后臺分頁對JSON格式的要求,一起看看吧2017-06-06解析JavaScript中的不可見數(shù)據(jù)類型
這篇文章主要是對JavaScript中的不可見數(shù)據(jù)類型進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12[全兼容哦]--實用、簡潔、炫酷的頁面轉(zhuǎn)入效果loing
[全兼容哦]--實用、簡潔、炫酷的頁面轉(zhuǎn)入效果loing...2007-05-05微信小程序跳轉(zhuǎn)外部鏈接的詳細實現(xiàn)方法
寫這個是因為最近小程序的一個需求需要從小程序跳轉(zhuǎn)到客戶的官網(wǎng),或者其他外部報名鏈接,下面這篇文章主要給大家介紹了關(guān)于微信小程序跳轉(zhuǎn)外部鏈接的詳細實現(xiàn)方法,需要的朋友可以參考下2022-10-10