تحليل متكرر XML في أكشن 2
-
22-08-2019 - |
سؤال
وأنا أبحث عن وسيلة فعالة وقابلة لإعادة الاستخدام لتحليل XML إلى كائن في actionscript2. هيكل أكس نفسه قد تغير لذلك فمن المهم أن ايم قادرا على تحليل أكس مع خروج 'من الصعب الترميز "العقد محددة، وما إلى ذلك.
وأنا عادة استخدام AS3 ولن تحتاج إلى شيء من هذا القبيل لأن الطبقة XML سهلة لأسفل إلى. فيما يلي AS3 شبة الكود ما أحاول تحقيقه.
public function XmlObject(myXmlObject:XML,_node:String):Object
{
var xmlObj:Object=new Object();
for(var node:uint=0;node<myXmlObject[_node].children().length();node++)
{
var attributesList:XMLList=myXmlObject[_node].children()[node].attributes();
var nodeName:String=myXmlObject[_node].children()[node].name();
switch(attributesList.length()>1)
{
//////////////////////
case false:
//////////////////////
{
for each(var attribute:XML in attributesList)
{
xmlObj[nodeName]=attribute;
}
break;
//////////////////////
case true:
//////////////////////
var values:Array=[];
for each(attribute in attributesList)
{
values.push(attribute);
xmlObj[nodeName][String(attribute.name())]=attribute;
}
break;
}
}
return xmlObj;
}
ويرجع الفضل في ذلك مسبقا لأية مساعدة في هذا!
المحلول
وأنا لم أفهم تماما رمز زائف الخاصة بك ... ماذا يحدث للvalues
صفيف؟ ويبدو أن مجرد التخلص منها ... أيضا، فإنه لا يبدو أن يكون العودية ...
والمشكلة هي أن دلالات XML وECMA كائنات مختلفة ...
وماذا كنت الخريطة هذا؟
<cart><item /><item /></cart>
وبعد ذلك، ما من شأنه أن يكون هذا؟
<cart><item /><cart>
ووما هذا؟
<cart />
والمشكلة هي أنه في الحالة الأولى، لديك مجموعة، في الثانية على الممتلكات، في شيء ثالث ... لذلك لا يمكنك معرفة ما cart.item
سيكون ... حتى لو أقول لكم، التي من شأنها أن تكون ملفوفة العقد التابعة واحدة في صفيف، هل يمكن أن لا تزال لديها أي إدخال، وبالتالي cart.item
هو null
... لا أن AS2 يشكون في حالة الوصول إلى خصائص null
ولكن لا يزال، وهذا هو uggly جدا ...
وE4X ويبدو أن أفضل طريقة لاجتياز الأجسام XML من عالم ECMA ... بعد التفكير قليلا، لقد وضعت معا قليلا (hacky جدا) مكتبة: HTTP: // كود .google.com / ع / as24x / يمكنك العثور على المكتبات الأخرى على جوجل على الرغم من أن دعم المزيد من الميزات ... انها بدلا عن تركيب ...
وآمل أن يساعد هذا.)
وgreetz
وback2dos