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