XML-typkonvertering
Flash Player 9 och senare, Adobe AIR 1.0 och senare
Det går att konvertera XML- och XMLList-objekt till strängvärden. Du kan också konvertera strängar till XML-objekt och XMLList-objekt. Kom ihåg att alla XML-attributvärden, namn och textvärden är strängar. I kommande avsnitt beskrivs dessa former av XML-typkonvertering.
Konvertera XML- och XMLList-objekt till strängar
Klasserna XML och XMLList innehåller metoderna toString() och toXMLString(). Metoden toXMLString() returnerar en sträng som innehåller alla taggar, attribut, namnutrymmesdeklarationer och innehållet i XML-objektet. För XML-objekt med komplext innehåll (underordnade element) fungerar metoden toString() på exakt samma sätt som metoden toXMLString(). För XML-objekt med enkelt innehåll (de som endast innehåller ett textelement) returnerar metoden toString() endast texten i elementet, vilket visas i nästa exempel:
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
Om du använder metoden trace(), utan att ange toString() eller toXMLString(), konverteras data vanligtvis med metoden toString(), vilket visas nedan:
var myXML:XML =
<order>
<item id='1' quantity='2'>
<menuName>burger</menuName>
<price>3.95</price>
</item>
<order>;
trace(myXML.item[0].menuName);
// burger
Om du använder metoden trace() för att felsöka koden bör du använda metoden toXMLString() så att metoden trace() ger mer kompletta data.
Konvertera strängar till XML-objekt
Du kan använda konstruktorn new XML() om du vill skapa ett XML-objekt från en sträng på följande sätt:
var x:XML = new XML("<a>test</a>");
Om du försöker konvertera en sträng till XML från en sträng som representerar ogiltig XML eller XML som inte är bra utformad, kommer ett körningsfel i enlighet med nästa exempel att uppstå:
var x:XML = new XML("<a>test"); // throws an error
Konvertera attributvärden, namn och textvärden från strängar
Alla XML-attributvärden, namn och textvärden har datatypen String och du kan ibland behöva konvertera dessa till andra datatyper. I följande exempel används funktionen Number() för att konvertera textvärden till tal:
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;
Om funktionen Number() inte användes i den här koden skulle +-operatorn tolkas som en strängsammanfogningsoperator och metoden trace() i sista raden skulle ge följande resultat:
01.003.95