سؤال

وأنا أبحث عن وسيلة فعالة وقابلة لإعادة الاستخدام لتحليل 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top