Prácticas y Ejemplos de XML, con Flash, PHP y MySQL

eXtensible Markup Language, Intermabio de datos entre Aplicaciones

Tutorial por Jorge Oyhenard (elQuique) de Developers Live

Segunda parte de este tutorial que pretende ser una introducción básica al lenguaje XML, y al uso para integrar aplicaciones como Flash, PHP y MySQL.

Luego de nuestra Introducción al XML, veremos en esta oportunidad la forma en que Adobe Flash, lee estos archivos y en que podemos utilizarlo.

Lo primero es entender lo básico para poder realizar aplicaciones Flash que utilicen, XML, por tanto para los más avanzados, pido disculpas si somos demasiado obvios.

En esta primera prueba vamos a crear un archivo datos.xml en cualquier editor de texto, también pueden hacerlo con:

Inicio, Ejecutar   Notepad  datos.xml  o indicando la carpeta donde debe guardarse así, Notepad c:\pruebas\datos.xml

El contenido para este primer ejemplo debe ser:

<usuarios>
            <usuario>Jacinto</usuario>
            <usuario>Ana</usuario>
</usuarios>

Luego vamos a abrir Flash y vamos a crear un documento nuevo (no importa las medidas ya que será solo código), en la ventana de acciones vamos a escribir el siguiente código:

misdatos = new XML();
misdatos.load("datos.xml");
misdatos.onLoad = function () {

    trace(misdatos.firstChild);
}

Y guardamos en c:\pruebas\ejemplo1.fla

En la primer línea,

misdatos = new XML();

en esta línea, estamos declarando una variable llamada “misdatos”, que será la que permita manejar nuestro objeto XML. El objeto XML es la representación de nuestro archivo de datos, en nuestra pequeña aplicación de ejemplo hecha en ActionScript de Flash.

En la segunda línea,

misdatos.load("datos.xml");

en esta línea, realizamos la lectura de los datos por medio de la orden load, a la cual le indicamos el nombre del archivo a leer. Con eso logramos que se lea la información desde nuestro archivo a la memoria, para poder trabajar con ella.

Para realizar cualquier función con la información leída, la manera mas común es realizar justamente una función que se ejecute al leer = onLoad (por su traducción al ingles, al Leer = on Load).

La función se declara así,

misdatos.onLoad = function () {
trace(misdatos.firstChild);
}

La línea misdatos.onLoad = function () { es igual siempre, al igual que la llave } de finalización. Lo que cambia siempre es el contenido de la función, en este caso:

trace(misdatos.firstChild);

que lo que hace es mostrar por medio de la orden trace, el contenido de “misdatos” ya que la orden firstChild simboliza el total de los datos.

Podemos probar esto dando CTRL Enter o en el menú, Control y Test Movie. Nota: si probamos muchas veces y la ventana Output se llena de datos o nos confunde, con botón derecho, Clear podemos limpiar la ventana Output.

Ejemplos de Uso XML

Como vemos en la imagen, se muestra toda la información del archivo XML, vamos a suponer que ahora solo queremos ver lo que corresponde a los usuarios, o sea Jacinto y Ana, para esto cambiaremos la función como sigue:

misdatos.onLoad = function () {
trace(misdatos.firstChild.childNotes);
}

Podemos probar nuevamente dando CTRL Enter o en el menú, Control y Test Movie.

Ejemplos de Uso XML

Esto es así, porque childNodes muestra solo los elementos Hijos de nuestro XML.

La estructura XML, se da de manera Jerárquica tenemos como Padre a todo el archivo XML y cada elemento interno serán sus Hijos, en este caso cada usuario.

Si ahora queremos ver solo el Primer Usuario (o sea Jacinto), podemos realizar el siguiente código:

misdatos.onLoad = function () {
trace(misdatos.firstChild.childNodes[0];
}

Tenemos que tener, en cuenta que entre los elementos de un XML, puede haber espacios en blanco que no deben ser tomados en cuenta. Es por eso que quizás no veas lo que debes ver, para asegurarnos vamos a utilizar ignoreWhite, de esta forma:

misdatos.ignoreWhite = true;
misdatos.onLoad = function () {
trace(misdatos.firstChild.childNodes[0];
}

Simplemente lo agregamos antes de la función y queda listo. Bien..., si con [0] aparece el Primer Elemento, nótese que comienza en 0 y siguen en 1, 2, 3 etc, o sea que numera del cero en adelante. Podemos ver los demás elementos usando ese numero hasta los N elementos que tengamos en nuestro archivo.

Por tanto si utilizamos así:

trace(misdatos.firstChild.childNodes[1]);

nos mostraría a Ana.

El código completo, en imágenes:

Ejemplos de Uso XML

En la próxima entrega, veremos un ejemplo más práctico utilizando archivos más complejos de datos y una pantalla flash que tome estos datos.

Ver la Parte 1 - Introducción al XML

Puedes realizar consultas o sugerencias sobre este tutorial en nuestro foro de soporte, click aqui
Hemos creado el correo electrónico tutoriales @ tallerwebmaster com para recibir tus aportes de tutoriales y artículos.
Registrate aquí para consultar, comentar, recibir novedades y valorar los Tutoriales y Artículos

 Fecha: 13/03/2007  CESARIO47 escribió:
muchas gracias, espero pronto la proxima entrega, muchas felicidades por su pagina esta excelente

 Fecha: 04/04/2007  VINI138 escribió:
Cuando estará el resto del tutorial?
Cada cuanto hacen publicaciones nuevas sobre este tema?

 Fecha: 05/07/2007  RAVALOS7 escribió:
Al igual que vini138 prgunto por el resto del tutorial, que tal como va es muy bueno, pero nos quedamos en el aire..¡¡por favor!!!

 Fecha: 05/10/2007  JAM escribió:
Bravo, Bravo, Chapeau y Chapeau.
La siguiente entrega por favor.
Dense por Saludados.

 Fecha: 23/10/2007  JCASPEV escribió:
Hola, buenisimo pero no se como continuar, la siguiente entrega por favor!!!

Gracias por esta excelente pagina... Saludos!!!

 Fecha: 07/12/2007  JUANALEX escribió:
tengo un problema a la ora de compilar tengo en ActionScript lo siguiente

linea1 var opcionesXML:XML = new XML();
linea2 opcionesXML.ignoreWhite = true;
linea3 opcionesXML.onLoad = function (sucess:Boolean){}
linea4 if (VAR Opciones: Array=this.firstChild.childNodes);
linea5 for (i=0; i<nodes.length; i++)
linea6 _root.attachMovie("mcBoton", "boton"+i,_root.getNextHighestDepth());
linea7 _root["boton"+i]._x = 50;
linea8 _root["boton"+i]._y = 30 + (i * 50);
linea9 _root["boton"+i].texto = opciones[i].childNodes[0].firstChild;
linea10 _root["boton"+i].linkurl = opciones[i].childNodes[1].firstChild;
linea11 _root["boton"+i].onRelease = function (){getURL(this.linkurl, "_blank");
linea12 else misdatos.ignoreWhite = true;
linea13 misdatos.onLoad = function () {trace(misdatos.firstChild.childNodes[0];};


y al compilarlo me da como resultado lo siguiente y no se cual es la correcion



**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 4: Se espera ')'
if (VAR Opciones: Array = this.firstChild.childNodes);

Total de errores de ActionScript: 1 Errores comunicados: 1


si me hace falta algo o simplemente me equivoque me lo pueden explicar por fa