Conversione degli oggetti XML

Flash Player 9 e versioni successive, Adobe AIR 1.0 e versioni successive

Gli oggetti XML e XMLList possono essere convertiti in valori stringa. Analogamente, è possibile convertire stringhe in oggetti XML e XMLList. Tenete presente che tutti i valori di attributo, i nomi e i valori di testo XML sono stringhe. Le sezioni seguenti affrontano tutte queste forme di conversione XML.

Conversione degli oggetti XML e XMLList in stringhe

Le classi XML e XMLList comprendono i metodi toString() e toXMLString(). Il metodo toXMLString() restituisce una stringa che comprende tag, attributi, dichiarazioni di spazio dei nomi e contenuto dell'oggetto XML. Sugli oggetti XML dal contenuto complesso (cioè con elementi secondari), il metodo toString() agisce esattamente come il metodo toXMLString(). Per gli oggetti XML dal contenuto semplice (cioè quelli caratterizzati da un solo elemento di testo), il metodo toString() restituisce solo il contenuto testo dell'elemento, come illustra l'esempio seguente:

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

Se usate il metodo trace() senza specificare toString() o toXMLString(), i dati vengono automaticamente convertiti usando il metodo toString(), come dimostra il codice seguente:

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

Quando utilizzate il metodo trace() per le attività di debug del codice, spesso risulta utile usare il metodo toXMLString() per fare in modo che trace() restituisca dati più completi.

Conversione di stringhe in oggetti XML

Usate la funzione di costruzione new XML() per creare un oggetto XML da una stringa nel modo seguente:

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

Se tentate di convertire in XML una stringa che rappresenta dati XML non validi o con una sintassi XML errata, viene generato un errore in fase di runtime nel modo seguente:

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

Conversione di valori attributo, nomi e valori di testo da stringhe

I valori attributo, i nomi e i valori di testo XML sono tipi di dati in formato stringa e potrebbe, pertanto, essere necessario convertirli in un tipo di dati diverso. Nel seguente codice di esempio viene utilizzata la funzione Number() per convertire i valori di testo in numeri:

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;

Se nel codice non fosse stata aggiunta la funzione Number(), il codice avrebbe interpretato l'operatore + come l'operatore di concatenazione di stringhe e il metodo trace() dell'ultima riga avrebbe generato il valore seguente:

01.003.95