Unidad 19. Formularios - ActionScript (IX)

Vamos a ver cómo hemos utilizado la información del archivo utilizando estos dos elementos:

//Para trabajar con datos XML utilizamos un objeto XML
var datosXML:XML = new XML();
datosXML.ignoreWhite = true; //Ignora elementos en blanco
//Para obtener información de un archivo, utilizamos un URLLoader
var cargadorXML:URLLoader = new URLLoader(); cargadorXML.load(new URLRequest('comentarios.xml'));
//Utilizamos el evento complete para no trabajar hasta que
//se haya cargado completamente

cargadorXML.addEventListener("complete", archivoCargado);
function archivoCargado(ev:Event):void {
comentarios_text.text="";
//Convertimos la info leída a XML y se la asignamos al objeto XML
datosXML=XML(cargadorXML.data);
var cadena:String;
//Con este bucle, reccoremos todos los elementos
for (var elemento:String in datosXML.comentario) {
//Para cada elemento, cremos una cadena de texto y la mostramos
cadena="<a href=\"mailto:"+datosXML.comentario.email[elemento]+"\">"+
datosXML.comentario.autor[elemento]+"</a>: <span class=\"mensaje\">"+
datosXML.comentario.mensaje[elemento]+"</span><br>\n";
comentarios_text.appendText(cadena);
}
}

Comenzamos declarandos el objeto XML, al que hemos llamado datosXML porque es lo que contendrá. Como todo objeto, tiene una serie de propieades que no vamos a detallar. Hemos utilizado la propiedad ignoreWhitespace, que ignorará aquellos campos que estén en blanco y así no tendremos que preocuparnos por posibles errores.

A continuación, extraemos la información del archivo, para lo que hemos utilizado un objeto URLLoader, al que hemos llamado cargadorXML. En su método load le indicamos el archivo a cargar. Además, como veníamos haciendo, para no continuar con el trabajando hasta que no se haya terminado de cargar, utilizamos el evento complete. En él, trataremos la información.

Llegados a este punto, tenemos la información cargada en la propiedad .data del cargador. Como no hemos indicado otra cosa, se ha cargado todo el archivo como texto. Utilizamos la función XML() para convertirlo a información XML, y se la asignamos a nuestro objeto XML:

datosXML = XML(cargadorXML.data);

Ahora, ya tenemos datosXML con toda la información. Con este objeto es sencillo acceder a ella, listarla, etc. En nuestro ejemplo, si queremos acceder al primer email (posición 0), lo podemos hacer escribiendo datosXML.comentario.email[0]. Basándonos en eso, hemos echo un bucle for para recorrer todos los elementos, e ir construyendo la cadena de texto que mostramos en la caja de texto.

Esta forma requiere que conozcamos la estructura del archivo, saber que se divide en etiquetas <comentario> y que dentro de ella tenemos la etiqueta <email>.

Utilizando los índices, podemos acceder a los distintos elementos de la jerarquía. Por ejemplo:

trace ('datosXML: ',datosXML); //Escribe todo el archivo
trace ('datosXML.comentario[1]: ',datosXML.comentario[1]); //Escribe el segundo comentario
trace ('datosXML.comentario[1].email: ',datosXML.comentario[1].email);
trace ('datosXML.comentario.email[1]: ',datosXML.comentario.email[1]); //Los dos anteriores escriben el email del segundo comentario.

En el ejemplo hemos accedido a un archivo .xml, pero podemos hacerlo con cualquier archivo que contenga la información XML debidamente estructurada. Por ejemplo, es muy frecuente utilizarlo llamando a un archivo PHP que genera el XML de forma dinámica.

 

Haremos referencia a este mismo ejemplo al final del tema. Si quieres probarlo, encontrarás el archivo XML en la carpeta ejercicios/cargarXMLyCSS. Recuerda, que para poder porbarlo antes hay que guardarlo.

Pág. 19.9

Atrás  Inicio  Adelante





Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies


© aulaClic S.L. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.