XML-Variable mit AS3 auslesen

Hier wird erklärt wie man eine Variable aus einer XML-Datei in ActionScript3 einliest, und mit einem dynamischen Textfeld ausgelesen wird.

 

Als erstes ein Beispiel einer XML-Liste.

<liste>
    <salz>Salz</salz>
    <mehl>Mehl 1kg</mehl>
    <mehl>Mehl 500g</mehl>
    <milch>
        <dosenmilch>Kondensmilch</dosenmilch>
        <frischmilch>Frischmilch</frischmilch>
    </milch>
</liste>

 

Die XML-Datei hat den Namen "liste.xml". Das dynamische Textfeld trägt den Instanznamen "kuchen".

 

Der ActionScript lautet wie folgt:

var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("liste.xml");
request.method = URLRequestMethod.POST;
loader.load(request);
loader.addEventListener(Event.COMPLETE, completeHandler);

function completeHandler(event:Event):void {
   var xml:XML = XML(loader.data);
   trace(xml.salz);

kuchen.text = xml.salz;
}

Mit der "trace"-Funktion wird das Ergebnis in Flash im Bedienfeld Ausgabe angezeigt.

Die XML-Variable wird direkt dem Textfeld zugewiesen.

 

Die Eigenschaften können auch in einer Variablen gespeichert werden:

    var xml:XML = XML(loader.data);
    var salz:String = xml.salz;

kuchen.text = salz;

 

Gibt es mehrere Objekte mit dem gleichen Typ werden sie mit einem numerischen Index angesprochen:

    var klmehl:String = xml.mehl[1];

kuchen.text = klmehl;

Wobei das erste Listenelement mit [0] bezeichnet wird.

 

Ist ein Objekt wiederum verschachtelt in mehrere Eigenschaften:

    var dmilch:String = xml.milch.dosenmilch;

kuchen.text = dmilch;

 

Ausgabe im Textfeld:

kuchen.text = salz + klmehl;

Die Variablen werden nebeneinander geschrieben.

 

Will man die Eigenschaften untereinander haben, muss ein Zeilenumbruch hinzugefügt werden.

kuchen.text = salz + "\n" + klmehl;

 

Weitere Eigenschaften dem Textfeld hinzufügen:

kuchen.text = salz;
kuchen.appendText(klmehl);

Fügt man eine weitere Eigenschaft mit "kuchen.text" ein, wird die vorherige Eigenschaft überschrieben. Deshalb kommt hier der "appendText" Befehl zum Einsatz. Es ist darauf zu achten die Variablen in Klammern zu setzen. Auch hier werden die Variablen nebeneinander ausgegeben.

 

Beim "trace"-Befehl werden die Variablen unterhalb ausgegeben.

trace(salz + klmehl);