Documentazione di Flash CS3 |
|||
| Programmazione in ActionScript 3.0 > Operazioni con XML > 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.
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.
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
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