English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 코드는 이 두 문제를 해결합니다:
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(보고할 때는 #을 @으로 변경하십시오.)를 통해 신고하시고 관련 증거를 제공하시면, 사실이 확인되면 이 사이트는 즉시 의심스러운 저작권 침해 내용을 삭제합니다.