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