No me había tocado trabajar a fondo con XML hasta hace poco y con la llegada del as3 ahora es más fácil leer y manejar este tipo de archivos para tus aplicaciones en flash.
Supongamos que tenemos esta estructura XML:
<canciones>
<cancion id="1">
<nombre>caution</nombre>
<mp3>Musica/Caution.mp3</mp3>
<beat>545</beat>
<inicio>4460</inicio>
<pasos>
<facil>Pasos/CautionFacil.xml</facil>
<normal>Pasos/CautionNormal.xml</normal>
<dificil>Pasos/CautionDificil.xml</dificil>
</pasos>
</cancion>
<cancion id="2">
<nombre>Bethoven</nombre>
<mp3>Musica/Virus Beethoven.mp3</mp3>
<pasos>
<facil>Pasos/BethovenFacil.xml</facil>
<normal>Pasos/BethovenNormal.xml</normal>
<dificil>Pasos/BethovenDificil.xml</dificil>
</pasos>
</cancion>
<cancion id="3">
<nombre>DJ Otada</nombre>
<mp3>Musica/DJ Otada.mp3</mp3>
<pasos>
<facil>Pasos/DJ Otada.mp3Facil.xml</facil>
<normal>Pasos/DJ Otada.mp3Normal.xml</normal>
<dificil>Pasos/DJ Otada.mp3Dificil.xml</dificil>
</pasos>
</cancion>
</canciones>
Para empezar tenemos que cargar este archivo con las siguientes lineas:
//cargador de xml
var xmlLoader:URLLoader = new URLLoader();
//variable que capturará la info
var xmlData:XML = new XML();
//cuando termine de leer el xml correrá la funcion cargadoXML
xmlLoader.addEventListener(Event.COMPLETE, cargadoXML);
xmlLoader.load(new URLRequest("URL_del_.xml"));
function cargadoXML(e:Event):void {
//toma la info del xml y la pone en nuestra variable xmlData
xmlData = new XML(e.target.data);
trace(xmlData);
}
Si corremos el flash, nos mostrará tal cual la información del archivo XML en la ventana de "trace".
Una de las cosas que podemos hacer es manejar la información del XML como si fueran objetos. por ejemplo si la linea del "trace" la cambiamos por:
trace(xmlData.cancion.nombre);
Vamos a obtener como resultado los nombres de las canciones.<nombre>caution</nombre>
<nombre>Bethoven</nombre>
<nombre>DJ Otada</nombre>
Si lo queremos sin las etiquetas, es decir, solo el texto que contiene, basta con poner:trace(xmlData.cancion.nombre.text());
Aparte de poder manejar como objetos los xml, también se pueden manipular como arreglos y así solo obtener la información de solo un campo específico.
Por ejemplo para sólo obtener los datos de la primera cancion puedes usar esto:
trace(xmlData.cancion[0]);
Por último, pero no menos importante, están las listas o "XMLList" que, como su nombre lo indica, convierten tu información de XML a una lista que puedes recorrer fácilmente.
Por ejemplo, para obtener el atributo "mp3" de cada canción puedes hacer esto:
var listaXML:XMLList = xmlData.cancion;
for each (var elemento:XML in listaXML) {
trace(elemento.mp3);
}
Para más detalles pueden checar este tutorial (en inglés).
Recuerda que puedes ayudar dando ideas para los siguientes minituts o si crees que algo se debe cubrir con más profundidad.






