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