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
|
|
|