Frage

Ich bin auf der Suche nach einer effizienten und wiederverwendbaren Art und Weise xml in ein Objekt in actionscript2 zu analysieren. Die XML-Struktur selbst ändern kann, so ist es wichtig, dass im der Lage, die xml mit heraus zu analysieren "harter Codierung spezifische Knoten, etc.

Ich verwende As3- normal und würde nicht so etwas wie dieses benötigen, da die XML-Klasse ist einfach in einen Drilldown. Im Folgenden finden Sie AS3 Pseudo-Code von dem, was ich zu erreichen bin versucht.

    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;
    }

Vielen Dank im Voraus für jede Hilfe zu diesem Thema!

War es hilfreich?

Lösung

i nicht vollständig Ihre Pseudo-Code verstanden haben ... was passiert mit dem Array values? scheint einfach weggeworfen zu werden ... auch, es nicht zu sein scheint rekursive ...

das Problem ist, dass die Semantik von XML und ECMA-Objekten ist anders ...

Was würden Sie auf Karte zu?

<cart><item /><item /></cart>

und dann, was das sein könnte?

<cart><item /><cart>

und was das?

<cart />

das Problem ist, dass im ersten Fall ein Array haben, in der zweiten eine Eigenschaft, in der dritten nichts ... so kann man nicht wissen kann, was cart.item werden ... auch wenn Sie sagen, dass einzelne Kind-Knoten wird in ein Array gewickelt werden, könnte man noch keinen Eintrag, und somit ist cart.item null ... nicht, dass AS2 würden sich beschweren, wenn Sie Eigenschaften von null zugreifen, aber immer noch, das ist ganz uggly ...

e4x scheint der beste Weg, um XML-Objekte aus einer ECMA Welt zu durchqueren ... nach ein wenig denken, ich habe Bibliothek zusammen ein wenig (ganz hacky): http: // Code .google.com / p / as24x / obwohl können Sie andere Bibliotheken auf Google finden, die mehr Funktionen unterstützen ... es ist eher zu Syntax ...

hoffe, das hilft;)

greetz

back2dos

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top