AS3 - XML verarbeiten

BIAsTeR

Mitglied
Moin,

ich will mit AS3 eine XML-Datei einlesen und zählen wie viele Einträge im ersten Knoten vorhanden sind.
Code XML:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<pictures>
	<picture1 pfad="./png_img/1.png" />
	<picture2 pfad="./png_img/2.png" />
	<picture3 pfad="./png_img/3.png" />
	<picture4 pfad="./png_img/4.png" />
	<picture5 pfad="./png_img/5.png" />
	<picture6 pfad="./png_img/6.png" />
	<picture7 pfad="./png_img/7.png" />
	<picture8 pfad="./png_img/8.png" />
	<picture9 pfad="./png_img/9.png" />
</pictures>
...
...

Code Flash:
Code:
//Datei definieren
var xml_file:String = "./_xml/config.xml";
//Loader definieren
var xml_loader:URLLoader = new URLLoader();
//Loader läd Datei
xml_loader.load(new URLRequest(xml_file));
//Array erstellen
//var xml_bildpfad:Array = new Array();
//Zählervariable erstellen
var zaehler:Number = 0;

//Nach Ende des Ladeprozesses wird parseXML aufgerufen
xml_loader.addEventListener(Event.COMPLETE,parseXML);

function parseXML(evt:Event) {
	//XML-Daten einlesen
	var xml_daten:XML = new XML(evt.target.data);
	//Kommentare ignorieren
	XML.ignoreComments = true;
	//Leerzeichen ignorieren
	XML.ignoreWhitespace = true;
	//für jedes Element wird der Zähler eines hochgezählt
	for (var k:int = 0;k<xml_daten.childNodes[0].length();k++) {
		zaehler++;
	}
}

Für mein Verständnis sollte der Code so stimmen. Flash sagt auch selber, dass der Code keine Fehler enthält. Wenn ich das ganze dann kompilieren will, bekomm ich:

TypeError: Error #1088: Das Markup im Dokument nach dem Stammelement muss logisch aufgebaut sein.
at Start_fla::MainTimeline/parseXML()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

Für mich sieht das so aus, als ob mein XML-Code nicht korrekt aufgebaut ist, aber wenn ich versuche die XML-Datei mit AS2 zu laden, gibt es keine Probleme.

Hat wer ne Idee, was an meinem AS3/XML Code falsch ist?

mfg
Ben
 
Hallo,

die XML-Klasse, so wie du sie verwendest, gibt es in dieser Form in AS3 nicht mehr. Verwende stattdessen die flash.xml.XMLDocument-Klasse, dann sollte sich der Fehler erübrigen.

Gruss
 

Neue Beiträge

Zurück