最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js轉換對象為xml

 更新時間:2017年02月17日 14:44:12   作者:lopcomvir  
本文主要介紹了js轉換對象為xml的方法。具有很好的參考價值,下面跟著小編一起來看下吧

本代碼解決這兩個問題:

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

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

var XmlHelper=function(){
 var _arrayTypes={}
 var _self=this;
 /*
 *轉換對象為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>

此轉換代碼有使用限制

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

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

相關文章

  • 微信小程序頁面間傳值與頁面取值操作實例分析

    微信小程序頁面間傳值與頁面取值操作實例分析

    這篇文章主要介紹了微信小程序頁面間傳值與頁面取值操作,結合實例形式分析了微信小程序頁面間傳值及頁面取值操作相關實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下
    2019-04-04
  • Weex開發(fā)之WEEX-EROS開發(fā)踩坑(小結)

    Weex開發(fā)之WEEX-EROS開發(fā)踩坑(小結)

    這篇文章主要介紹了Weex開發(fā)之WEEX-EROS開發(fā)踩坑(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • 原生JS實現(xiàn)ajax與ajax的跨域請求實例

    原生JS實現(xiàn)ajax與ajax的跨域請求實例

    下面小編就為大家分享一篇原生JS實現(xiàn)ajax與ajax的跨域請求實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • 工作需要寫的一個js拖拽組件

    工作需要寫的一個js拖拽組件

    工作需要寫的一個js拖拽組件,需要的朋友可以參考下代碼。
    2011-07-07
  • 解決option標簽selected=

    解決option標簽selected="selected"屬性失效的問題

    下面小編就為大家?guī)硪黄鉀Qoption標簽selected="selected"屬性失效的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望對大家有所幫助
    2017-11-11
  • JavaScript高級程序設計 擴展--關于動態(tài)原型

    JavaScript高級程序設計 擴展--關于動態(tài)原型

    前文是基于《JavaScript高級程序設計》中關于對象創(chuàng)建的筆記和總結。
    2010-11-11
  • 詳解web如何改變主題配色方法示例

    詳解web如何改變主題配色方法示例

    這篇文章主要為大家介紹了web如何改變主題配色方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 淺談javascript中的Function和Arguments

    淺談javascript中的Function和Arguments

    下面小編就為大家?guī)硪黄獪\談javascript中的Function和Arguments。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • Javascript獲取當前時間函數(shù)和時間操作小結

    Javascript獲取當前時間函數(shù)和時間操作小結

    這篇文章主要介紹了Javascript獲取當前時間函數(shù)和時間操作小結,本文根據(jù)項目實際需求總結而來,需要的朋友可以參考下
    2014-10-10
  • webpack打包進度展示以及美化教程

    webpack打包進度展示以及美化教程

    webpack 是一個現(xiàn)代 JavaScript 應用程序的靜態(tài)模塊打包器(module bundler),下面這篇文章主要給大家介紹了關于webpack打包進度展示以及美化的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-01-01

最新評論

克拉玛依市| 剑阁县| 惠州市| 股票| 保德县| 泉州市| 威信县| 福泉市| 类乌齐县| 和顺县| 密山市| 马关县| 衡南县| 七台河市| 台湾省| 万山特区| 井冈山市| 井冈山市| 闵行区| 威远县| 海淀区| 治县。| 德令哈市| 井研县| 金坛市| 文水县| 那曲县| 乡城县| 射阳县| 罗甸县| 龙江县| SHOW| 潮安县| 赤峰市| 西乡县| 南雄市| 临朐县| 沙洋县| 武城县| 集贤县| 平安县|