English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
This code solves these two problems:
1. Since JavaScript objects do not have a class name concept, the top-level node name must be specified manually during conversion
2. There is also a configuration for the node name of the array element if the element inside the array is of object type
var XmlHelper=function(){ var _arrayTypes={} var _self=this; /* *Convert object to xml *@obj Target object *@rootname Node name *@arraytypes Configure the node name of the sub-element of the array */ 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"){ var parseObjectToXML=function(obj,rootname){ } rootname="Object"; } } return xml; } if(obj){ if(typeof rootname==="undefined"||!isNaN(Number(rootname))){ for(var field in obj){ } var xml="<"+rootname+">"; 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> //الإخراج:================================================ //مثال 2 var testobj2=[1,2,3]; console.log(xmlhelper.parseToXML(testobj2,"testobj2")); //الإخراج:<testobj2><number>1</number><number>2</number><number>3</number></testobj2>
يوجد تحديدات لاستخدام هذا الكود
من الأفضل ألا تكون أسماء الحقول في العنصر التي تحتوي على قيم قائمة متشابهة
هذا هو نهاية محتوى هذا المقال، نأمل أن تكون محتويات هذا المقال قد ساعدتكم في التعلم أو العمل، ونأمل أيضًا أن تشجعوا دائمًا على دعم تعليمات الصياح!
البيان: محتوى هذا المقال تم جمعه من الإنترنت، ويعود حقوق الطبع والنشر إلى المالك الأصلي، يتم جمع المحتوى من قبل المستخدمين على الإنترنت بشكل متعاوني وتم تحميله بشكل مستقل، ويحمل هذا الموقع حقوق الملكية، ويتم تعديل المحتوى بشكل يدوي، ولا يتحمل هذا الموقع أي مسؤولية قانونية. إذا كنت قد وجدت محتوى يشتبه في انتهاك حقوق النسخ، فالرجاء إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال # بـ @) لإبلاغنا، وتقديم الدليل المتعلق، وإذا تم التحقق من ذلك، فإن هذا الموقع سيقوم بإزالة المحتوى المزعوم بشكل فوري.