XML-typeomzetting

Flash Player 9 of hoger, Adobe AIR 1.0 of hoger

U kunt XML-objecten en XMLList-objecten omzetten in tekenreekswaarden. Op dezelfde manier kunt u tekenreeksen omzetten in XML-objecten en XMLList-objecten. Houd er rekening mee dat alle XML-kenmerkwaarden, -namen en -tekstwaarden ook tekenreeksen zijn. In de volgende secties worden al deze vormen van XML-typeomzetting beschreven.

Objecten XML en XMLList omzetten in tekenreeksen

De klassen XML en XMLList bevatten een methode toString() en een methode toXMLString(). De methode toXMLString() retourneert een tekenreeks die alle tags, kenmerken, naamruimtedeclaraties en inhoud van het object XML bevat. De methode toString() van XML-objecten met complexe inhoud (onderliggende elementen) heeft precies dezelfde werking als de methode toXMLString(). De methode toString() van XML-objecten met eenvoudige inhoud (objecten met slechts één tekstelement) retourneert alleen de tekstinhoud van het element, zoals in het volgende voorbeeld wordt getoond:

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

Wanneer u de methode trace() gebruikt zonder toString() of toXMLString() op te geven, worden de gegevens standaard omgezet met de methode toString(), zoals wordt getoond in deze code:

var myXML:XML =  
    <order> 
        <item id='1' quantity='2'> 
            <menuName>burger</menuName> 
            <price>3.95</price> 
        </item> 
    <order>; 
 
trace(myXML.item[0].menuName);  
    // burger

Wanneer u de methode trace() gebruikt om fouten op te sporen in codes, is het nuttig om de methode toXMLString() te gebruiken voor een optimalere uitvoer van de methode trace().

Tekenreeksen omzetten in XML-objecten

U kunt als volgt de constructor new XML() gebruiken om een object XML te maken van een tekenreeks:

var x:XML = new XML("<a>test</a>");

Wanneer u een tekenreeks probeert om te zetten in XML van een tekenreeks die ongeldige XML vertegenwoordigt of die XML vertegenwoordigt die niet correct is samengesteld, wordt als volgt een uitvoeringsfout gegenereerd:

var x:XML = new XML("<a>test"); // throws an error

Kenmerkwaarden, -namen en -tekstwaarden van tekenreeksen omzetten

Alle XML-kenmerkwaarden, -namen en -tekstwaarden zijn tekenreeksgegevenstypen die u mogelijk moet omzetten in andere gegevenstypen. In de volgende code wordt bijvoorbeeld de functie Number() gebruikt om tekstwaarden om te zetten in getallen:

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;

Wanneer in deze code geen gebruik zou zijn gemaakt van de functie Number() zou de operator + worden geïnterpreteerd als tekenreekssamenvoegingsoperator en zou de methode trace() in de laatste regel het volgende genereren:

01.003.95