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