Conversión de tipo XML

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

Se pueden convertir objetos XML y XMLList a valores de cadena. De forma similar, se pueden convertir cadenas en objetos XML y XMLList. También se debe tener en cuenta que todos los valores de atributos, nombres y valores de texto XML son cadenas. En las secciones siguientes se tratan todas estas formas de conversión de tipo XML.

Conversión de objetos XML y XMLList en cadenas

Las clases XML y XMLList incluyen un método toString() y un método toXMLString() . El método toXMLString() devuelve una cadena que incluye todas las etiquetas, los atributos, las declaraciones de espacios de nombres y el contenido del objeto XML. Para objetos XML con contenido complejo (elementos secundarios), el método toString() hace exactamente lo mismo que el método toXMLString() . Para objetos XML con contenido simple (los que contienen un solo elemento de texto), el método toString() devuelve únicamente el contenido de texto del elemento, como se indica en el siguiente ejemplo:

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

Si se utiliza el método trace() sin especificar toString() ni toXMLString() , los datos se convierten con el método toString() de manera predeterminada, como se muestra en el código siguiente:

var myXML:XML =  
    <order> 
        <item id='1' quantity='2'> 
            <menuName>burger</menuName> 
            <price>3.95</price> 
        </item> 
    <order>; 
 
trace(myXML.item[0].menuName);  
    // burger

Al utilizar el método trace() para depurar código, generalmente se deseará utilizar el método toXMLString() para que el método trace() devuelva datos más completos.

Conversión de cadenas a objetos XML

Se puede utilizar el constructor new XML() para crear un objeto XML de una cadena, de la manera siguiente:

var x:XML = new XML("<a>test</a>");

Si se intenta convertir una cadena en XML a partir de una cadena que representa datos XML no válidos o que no están bien formados, se emitirá un error en tiempo de ejecución, como se muestra a continuación:

var x:XML = new XML("<a>test"); // throws an error

Conversión de valores de atributos, nombres y valores de texto de tipo cadena

Todos los valores de atributos, nombres y valores de texto XML son del tipo de datos String y es posible que sea necesario convertirlos a otros tipos de datos. Por ejemplo, el código siguiente utiliza la función Number() para convertir valores de texto en 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;

Si este código no utilizara la función Number() , interpretaría el operador + como el operador de concatenación de cadenas y el método trace() en la última línea emitiría lo siguiente:

01.003.95