Conversão de tipo XML
Flash Player 9 e posterior, Adobe AIR 1.0 e posterior
Você pode converter objetos XML e XMLList em valores de string. Do mesmo modo, é possível converter strings em objetos XML e XMLList. Além disso, tenha em mente que todos os valores de atributo, nomes e valores de texto XML são strings. As seções a seguir discutem todas essas formas de conversão de tipo XML.
Conversão de objetos XML e XMLList em strings
As classes XML e XMLList incluem um método toString() e um método toXMLString(). O método toXMLString() retorna uma string que inclui todas as tags, atributos, instruções de namespace e conteúdo do objeto XML. Para objetos XML com conteúdo complexo (elementos filho), o método toString() é exatamente igual ao método toXMLString(). Para objetos XML com conteúdo simples (aqueles que contêm apenas um elemento de texto), o método toString() retorna somente o conteúdo de texto do elemento, como mostra o exemplo a seguir:
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 o método trace() é usado sem especificar toString() ou toXMLString(), os dados são convertidos usando o método toString() por padrão, como mostra este código:
var myXML:XML =
<order>
<item id='1' quantity='2'>
<menuName>burger</menuName>
<price>3.95</price>
</item>
<order>;
trace(myXML.item[0].menuName);
// burger
Ao usar o método trace() para depurar o código, você normalmente usará o método toXMLString() para que trace() gere dados mais completos.
Conversão de strings em objetos XML
É possível usar o construtor new XML() para criar um objeto XML a partir de uma string, do seguinte modo:
var x:XML = new XML("<a>test</a>");
Se você tentar converter uma string em XML a partir de uma string que representa um XML inválido ou mal formado, ocorrerá um erro de tempo de execução do seguinte modo:
var x:XML = new XML("<a>test"); // throws an error
Conversão de valores de atributo, nomes e valores de texto a partir de strings
Todos os valores de atributo, nomes e valores de texto XML são tipos de dados String e talvez seja necessário convertê-los em outros tipos de dados. Por exemplo, o código a seguir usa a função Number() para converter valores de texto em números:
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 esse código não tivesse usado a função Number(), o código interpretaria o operador + como o operador de concatenação de string e o método trace() na última linha seria o seguinte:
01.003.95