Conversione degli oggetti XML

Gli oggetti XML e XMLList possono essere convertiti in valori stringa. Analogamente, è possibile convertire stringhe in oggetti XML e XMLList. Tenere 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.

Sezioni

Conversione degli oggetti XML e XMLList in stringhe
Conversione di stringhe in oggetti XML
Conversione di valori attributo, nomi e valori di testo da stringhe

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 di 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 si usa 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 si usa 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

Usare 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 si tenta 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"); // genera un errore

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 esempio di codice 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.35;

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

Flash CS3

 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/main/00000131.html