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