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