jueves, 16 de julio de 2009

ECMAScript for XML (E4X)

Bueno, Me encontraba leyendo un manual de actionscript y decía que implementa E4X, si , si , soy informático y me encantan las siglas pero que es E4X? Leyendo http://en.wikipedia.org/wiki/ECMAScript_for_XML supe que es un lenguaje que permite que un archivo xml sea soportado como un tipo más del lenguaje.

ActionScript implementa este lenguaje y permite hacer cosas como estas:

Crear un xml:

var empleado:XML = <empleado> </empleado>;
empleado.nombre = "Pedro";
empleado.apellido = "Godoy";
empleado.@id = 234;

var otroEmpleado:XML = <empleado> </empleado>;
otroEmpleado.nombre = "Andres";
otroEmpleado.apellido = "Godoy";
otroEmpleado.@id = 224;

var empleados:XML = <empleados> </empleados>;;
empleados.appendChild(empleado);
empleados.appendChild(otroEmpleado);

ejemploText.text = empleados.toXMLString();

Y la salida va a ser esto:

<empleados>
<empleado id="234">
<nombre>Pedro</nombre>
<apellido>Godoy</apellido>
</empleado>
<empleado id="224">
<nombre>Andres</nombre>
<apellido>Godoy</apellido>
</empleado>
</empleados>

Para recorrer un xml se podria hacer algo así:

var orden:XML =
<order>
<item id='1'>
<menuName>burger</menuName>
<price>3.95</price>
</item>
<item id='2'>
<menuName>fries</menuName>
<price>1.45</price>
</item>
</order>;
ejemploText.text = "Imprime el precio del item 1 \n";
ejemploText.text += orden.item.(@id == 1).price;
ejemploText.text += " \n \n ";
ejemploText.text += "Imprime los items id < 3 \n"; ejemploText.text += orden.item.(@id < 3).toXMLString();

Como ven el @ permite acceder a los atributos de un tag y con el . puedo acceder a elementos del xml.

Que Grande E4X !!!!!!