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