English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

js로 객체를 xml로 변환

이 코드는 이 두 문제를 해결합니다:

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);
  }
  xml+=parseObjectToXML(obj,rootname);
  }
  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);
   }
   xml+=_self.parseToXML(value,field);
   }
   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>

이 변환 코드는 제한이 있습니다

객체의 값이 배열인 필드 이름은 다를最好

이 문서의 모든 내용이 끝입니다. 이 문서의 내용이 여러분의 학습이나 업무에 도움이 되길 바랍니다. 또한, 노래 튜토리얼을 많이 지지해 주시길 바랍니다!

언급: 이 문서의 내용은 인터넷에서 가져왔으며, 저작권자는 본 사이트에 소유권을 가지고 있지 않으며, 인터넷 사용자가 자발적으로 기여하고 자체적으로 업로드한 내용입니다. 본 사이트는 인공적으로 편집한 것은 아니며, 관련 법적 책임도 부담하지 않습니다. 저작권 침해가 의심되는 내용이 있다면, notice#w로 이메일을 보내 주세요.3codebox.com(보고할 때는 #을 @으로 변경하십시오.)를 통해 신고하시고 관련 증거를 제공하시면, 사실이 확인되면 이 사이트는 즉시 의심스러운 저작권 침해 내용을 삭제합니다.