XML-Typumwandlung

Flash Player 9 und höher, Adobe AIR 1.0 und höher

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.

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 new XML() -Konstruktor 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"); // throws an error

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.95;

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