Photoshop
Cinema 4d
Fotografie
Weitere Grafiksoftware
HTML / CSS
JavaScript
Flash
PHP
Webserver
Sonstige
XML Datei erstellen und auslesen (Flash Tutorial)
Tutorial erstellt von veNom in ActionScript 3, letzte Änderung am 09.06.2009
In diesen Tutorial erkläre ich euch wie ihr in ActionScript 3 mit XML-Daten arbeiten könnt.
1. XML Datei erstellen
2. XML Datei laden
3. XML Daten auslesen
Als erstes müssen wir uns eine XML Datei erstellen. Dies kann in jedem beliebigen Texteditor gemacht werden. Der Inhalt der Datei könnte folgendermaßen aussehen:
Code:
Diese Datei speichern wir beispielsweise als myXML.xml. Damit ist der erste Schritt bereits abgeschlossen.
Bevor wir auf die Inhalte zugreifen können, müssen wir erst einmal die XML-Datei mit unserer Flash-Datei verknüpfen. Dies geschieht mit folgenden Zeilen:
Code:
Anstatt der extra definierten Variable url könnte man den URLRequest direkt in den load()-Befehl schreiben. Dies würde dann so aussehen.
Code:
Wie ihr seht ist dem xmlloader bereits ein EventListener zugeteilt. Dieser EventListener sorgt dafür, dass die Funktion „parseXML“ aufgerufen wird, sobald das Event „Event.COMPLETE“ ausgelöst wurde, welches genau dann ausgelöst wird wenn die Datei fertig geladen ist. „parseXML“ ist eine Funktion die wir nun definieren werden. Diese hat die Funktion, die Daten aus der XML-Datei auszulesen.
Als erstes definieren wir die Funktion:
Code:
Da die Definition einer Variable mit dem Inhalt der XML-Datei den Zugriff auf Daten erleichtert, legen wir eine Variable „xml“ an in die wir durch „XML(xmlloader.data)“ die Daten einlesen. Die Eigenschaft „ignoreWhite“ sorgt dafür, dass leere XML-Knoten (z.B. „<vorname> </vorname>“) ignoriert werden.
Durch den Befehl „trace(xml)“ können wir XML-Struktur der Variable „xml“ ausgeben lassen. Damit können wir kontrollieren ob das Einlesen der Datei erfolgreich war.
Code:
Auf diesem Wege geben wir aber immer die komplette Struktur der XML-Datei aus. Um auf die einzelnen Elemente nun zugreifen zu können, müssen wir unsere Ausgabe noch etwas genauer definieren.
Code:
Hiermit bekommen wir alle Informationen zwischen <person> und </person> aller Personen ausgegeben.
Code:
Mit diesem Funktionsaufruf greifen wir auf die sogenannten Kindknoten des Knotens „person“ zu.
Doch wenn man jetzt nur den Vornamen oder Nachnamen einer bestimmten Person ausgeben will, muss man die Ausgabe noch um ein Stück erweitern.
Code:
Mit der Angabe von [0], wird die erste Person (der Reihenfolge nach) ausgelesen.
Wichtiger Hinweis:
Aufzählungen beginnen immer bei 0. In diesem Fall ist die erste Person (der erste XML-Eintrag) Element 0.
Auch unterscheidet man zwischen Groß und Kleinschreibung, Person und person sind also 2 verschiedene Definitionen.
>> Allgemeine Fragen oder Probleme mit dem Tutorial? Hier gehts zum Forum!
1. XML Datei erstellen
2. XML Datei laden
3. XML Daten auslesen
1.XML Datei erstellen
Als erstes müssen wir uns eine XML Datei erstellen. Dies kann in jedem beliebigen Texteditor gemacht werden. Der Inhalt der Datei könnte folgendermaßen aussehen:
Code:
<?xml version="1.0" encoding="utf-8"?>
<Personen>
<person>
<vorname>Max</vorname>
<nachname>Mustermann</nachname>
</person>
<person>
<vorname>Peter</vorname>
<nachname>Mustermann</nachname>
</person>
<person>
<vorname>Marie</vorname>
<nachname>Musterfrau</nachname>
</person>
</Personen>
<Personen>
<person>
<vorname>Max</vorname>
<nachname>Mustermann</nachname>
</person>
<person>
<vorname>Peter</vorname>
<nachname>Mustermann</nachname>
</person>
<person>
<vorname>Marie</vorname>
<nachname>Musterfrau</nachname>
</person>
</Personen>
Diese Datei speichern wir beispielsweise als myXML.xml. Damit ist der erste Schritt bereits abgeschlossen.
2. XML-Datei laden
Bevor wir auf die Inhalte zugreifen können, müssen wir erst einmal die XML-Datei mit unserer Flash-Datei verknüpfen. Dies geschieht mit folgenden Zeilen:
Code:
var url:URLRequest = new URLRequest("myXML.xml");
var xmlloader:URLLoader = new URLLoader();
xmlloader.addEventListener(Event.COMPLETE, parseXML);
xmlloader.load(url);
var xmlloader:URLLoader = new URLLoader();
xmlloader.addEventListener(Event.COMPLETE, parseXML);
xmlloader.load(url);
Anstatt der extra definierten Variable url könnte man den URLRequest direkt in den load()-Befehl schreiben. Dies würde dann so aussehen.
Code:
var xmlloader:URLLoader = new URLLoader();
xmlloader.addEventListener(Event.COMPLETE, parseXML);
xmlloader.load(new URLRequest("myXML.xml"));
xmlloader.addEventListener(Event.COMPLETE, parseXML);
xmlloader.load(new URLRequest("myXML.xml"));
Wie ihr seht ist dem xmlloader bereits ein EventListener zugeteilt. Dieser EventListener sorgt dafür, dass die Funktion „parseXML“ aufgerufen wird, sobald das Event „Event.COMPLETE“ ausgelöst wurde, welches genau dann ausgelöst wird wenn die Datei fertig geladen ist. „parseXML“ ist eine Funktion die wir nun definieren werden. Diese hat die Funktion, die Daten aus der XML-Datei auszulesen.
3. XML-Daten auslesen
Als erstes definieren wir die Funktion:
Code:
function parseXML(evt:Event)
{
var xml:XML = XML(xmlloader.data);
xml.ignoreWhite = true;
trace(xml);
}
{
var xml:XML = XML(xmlloader.data);
xml.ignoreWhite = true;
trace(xml);
}
Da die Definition einer Variable mit dem Inhalt der XML-Datei den Zugriff auf Daten erleichtert, legen wir eine Variable „xml“ an in die wir durch „XML(xmlloader.data)“ die Daten einlesen. Die Eigenschaft „ignoreWhite“ sorgt dafür, dass leere XML-Knoten (z.B. „<vorname> </vorname>“) ignoriert werden.
Durch den Befehl „trace(xml)“ können wir XML-Struktur der Variable „xml“ ausgeben lassen. Damit können wir kontrollieren ob das Einlesen der Datei erfolgreich war.
Code:
<Personen>
<person>
<vorname>Max</vorname>
<nachname>Mustermann</nachname>
</person>
<person>
<vorname>Peter</vorname>
<nachname>Mustermann</nachname>
</person>
<person>
<vorname>Marie</vorname>
<nachname>Musterfrau</nachname>
</person>
<ignoreWhitespace>true</ignoreWhitespace>
</Personen>
<person>
<vorname>Max</vorname>
<nachname>Mustermann</nachname>
</person>
<person>
<vorname>Peter</vorname>
<nachname>Mustermann</nachname>
</person>
<person>
<vorname>Marie</vorname>
<nachname>Musterfrau</nachname>
</person>
<ignoreWhitespace>true</ignoreWhitespace>
</Personen>
Auf diesem Wege geben wir aber immer die komplette Struktur der XML-Datei aus. Um auf die einzelnen Elemente nun zugreifen zu können, müssen wir unsere Ausgabe noch etwas genauer definieren.
Code:
trace(xml.person);
Hiermit bekommen wir alle Informationen zwischen <person> und </person> aller Personen ausgegeben.
Code:
Trace(xml.person.vorname)
Mit diesem Funktionsaufruf greifen wir auf die sogenannten Kindknoten des Knotens „person“ zu.
Doch wenn man jetzt nur den Vornamen oder Nachnamen einer bestimmten Person ausgeben will, muss man die Ausgabe noch um ein Stück erweitern.
Code:
trace(xml.person[0].vorname);
Mit der Angabe von [0], wird die erste Person (der Reihenfolge nach) ausgelesen.
Wichtiger Hinweis:
Aufzählungen beginnen immer bei 0. In diesem Fall ist die erste Person (der erste XML-Eintrag) Element 0.
Auch unterscheidet man zwischen Groß und Kleinschreibung, Person und person sind also 2 verschiedene Definitionen.
>> Allgemeine Fragen oder Probleme mit dem Tutorial? Hier gehts zum Forum!