XML-Typkonvertierung

Sie können XML-Objekte und XMLList-Objekte in String-Werte konvertieren. Ebenso können Sie Strings in XML-Objekte und XMLList-Objekte konvertieren. Beachten Sie auch, dass alle XML-Attributwerte, XML-Namen und XML-Textwerte Strings sind. In den folgenden Abschnitten werden alle diese Arten der XML-Typkonvertierung behandelt.

Unterthemen

Konvertieren von XML- und XMLList-Objekten in Strings
Konvertieren von Strings in XML-Objekte
Konvertieren von Attributwerten, Namen und Textwerten aus Strings

Konvertieren von XML- und XMLList-Objekten in Strings

Die XML- und XMLList-Klassen enthalten eine toString()-Methode und eine toXMLString()-Methode. Die toXMLString()-Methode gibt einen String zurück, der alle Tags, Attribute, Namespace-Deklarationen und Inhaltsdaten des XML-Objekts enthält. Bei XML-Objekten mit komplexem Inhalt (d. h. mit untergeordneten Elementen) bewirkt die toString()-Methode genau dasselbe wie die toXMLString()-Methode. Bei XML-Objekten mit einfachem Inhalt (mit nur einem Textelement) gibt die toString()-Methode nur den Textinhalt des Elements zurück, wie im folgenden Beispiel dargestellt ist:

var myXML:XML = 
    <order>
        <item id='1' quantity='2'>
            <menuName>burger</menuName>
            <price>3.95</price>
        </item>
    <order>;

trace(myXML.item[0].menuName.toXMLString()); 
    // <menuName>burger</menuName>
trace(myXML.item[0].menuName.toString());
    // burger

Wenn Sie die trace()-Methode verwenden, ohne toString() oder toXMLString() anzugeben, werden die Daten standardmäßig mithilfe der toString()-Methode konvertiert, wie im folgenden Codebeispiel dargestellt ist:

var myXML:XML = 
    <order>
        <item id='1' quantity='2'>
            <menuName>burger</menuName>
            <price>3.95</price>
        </item>
    <order>;

trace(myXML.item[0].menuName); 
    // burger

Bei Verwendung der trace()-Methode zum Debuggen empfiehlt es sich jedoch in der Regel, die toXMLString()-Methode zu verwenden, damit die trace()-Methode umfassendere Daten ausgibt.

Konvertieren von Strings in XML-Objekte

Sie können wie folgt mit dem Konstruktor new XML() ein XML-Objekt aus einem String erstellen:

var x:XML = new XML("<a>test</a>");

Beim Versuch, einen String in XML zu konvertieren, der ungültige und nicht korrekt strukturierte XML-Daten enthält, wird ein Laufzeitfehler ausgelöst:

var x:XML = new XML("<a>test"); // Fehler

Konvertieren von Attributwerten, Namen und Textwerten aus Strings

Alle XML-Attributwerte, XML-Namen und XML-Textwerte sind vom Datentyp String und müssen gegebenenfalls in andere Datentypen umgewandelt werden. Im folgenden Codebeispiel werden Textwerte beispielsweise mithilfe der Number()-Funktion in Zahlen umgewandelt:

var myXML:XML = 
                        <order>
                            <item>
                                <price>3.95</price>
                            </item>
                            <item>
                                <price>1.00</price>
                            </item>
                        </order>;

var total:XML = <total>0</total>;
myXML.appendChild(total);

for each (var item:XML in myXML.item)
{
    myXML.total.children()[0] = Number(myXML.total.children()[0]) 
                                                + Number(item.price.children()[0]);
}
trace(myXML.total); // 4.35;

Wenn in diesem Code nicht die Number()-Funktion verwendet wird, wird der „+"-Operator als Stringverkettungsoperator interpretiert, und die Ausgabe der trace()-Methode in der letzten Zeile lautet wie folgt:

01.003.95

Flash CS3

 

Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht

Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/main/00000131.html