Comunidad de diseño web y desarrollo en internet online

XML en ActionScript 3 con E4X

Comparto un experimento que andaba haciendo con la nueva forma de manejar XMLs en AS3, la sintaxis E4X.

Tomemos el caso en el que hay un listado de canciones (en archivo tracks.xml) que tiene como propiedades su Artista, Nombre y URL del mp3 a cargar. Lo que hacemos aquí es sólo listar el nombre del artista.

Aquí el archivo tracks.xml :

Código :

<tracks>
  <track nombre="Gato Lopez" artista="Ska P"  url="http://threefingeredguy.revsoft.org/SKAP/13%20El%20Gato%20Lopez.mp3"/>
  <track nombre="Preso" artista="Aleks Syntek" url="http://www.munisurquillo.gob.pe/web_juventudes/reproductor/mp3player/musica/Aleks%20Syntek.-%20Preso.mp3"/>
  <track nombre="De mis pasos" artista="Julieta Venegas"  url="http://www.munisurquillo.gob.pe/web_juventudes/reproductor/mp3player/musica/Julieta%20Venegas%20-%20De%20mis%20pasos.mp3"/>
  <track nombre="Promiscuity" artista="Manu Chao"  url="http://honidou.free.fr/music/manu_chao/Proxima%20Estacion-%20Esperanza/04%20Promiscuity.mp3"/>
  <track nombre="Final Countdown" artista="Europa"  url="http://www.personal.psu.edu/lea128/Europe%20-%20The%20Final%20Countdown.mp3"/>
  <track nombre="Dream On" artista="Manolo Camp"  url="http://www.manolocamp.net/music/mp3/Manolo%20Camp%20-%20Dream%20on.mp3"/>
  <track nombre="Don't lie" artista="Black Eyed Peas"  url="http://www.semret.org/music/Black%20Eyed%20Peas%20-%20Dont%20Lie.mp3"/>
  <track nombre="Me gustas tu" artista="Manu Chao"  url="http://honidou.free.fr/music/manu_chao/Proxima%20Estacion-%20Esperanza/06%20Me%20Gustas%20Tu.mp3"/>
  <track nombre="Grooving" artista="UB40"  url="http://www.munisurquillo.gob.pe/web_juventudes/reproductor/mp3player/musica/UB40%20-%20Groovin.mp3"/>
  <track nombre="Levas Polka - Finkstor" artista="Loituma"  url="http://www.box.net/public/static/c01lpg7gpk.mp3"/>
  <track nombre="A Town Called Malice" artista="The Jam"  url="http://localhostr.com/files/d6aab882e0427660a154.mp3"/>  
</tracks>


Y aquí el código AS3:

Código :

package 
{
   import flash.display.*;
   import flash.events.*;
   import flash.net.*;
   import flash.utils.*;

   public class cargaXML extends Sprite
   {
      public function cargaXML()
      {
         var loader:URLLoader=new URLLoader  ;
         var request:URLRequest=new URLRequest("tracks.xml");
         loader.dataFormat=URLLoaderDataFormat.TEXT;
         loader.addEventListener(Event.COMPLETE,xmlcompletado);
         loader.load(request);
      }
      private function xmlcompletado(event:Event):void
      {
         //ya se puede reconocer el tipo de error al cargar el XML usando try y catch
         try {
            // convierte el texto descargado en una instancia XML
            var miXML:XML=new XML(event.target.data);
            // Acá el la instancia XML miXML ya está lista para usarse con la sintaxis E4X
            // hacemos uso del for each (ojo: este no regresa ningún índice ehh)
            for each (var item:XML in miXML.elements()) {
               //usando @atributo en este caso el atributo artista
               trace(item.@artista);
            }
         } catch (e:TypeError) {
            trace("No se pudo parsear el XML");
            trace(e.message);
         }
      }
   }
}


Espero que les sirva. ^^ Y si extienden el problema y/o la explicación mucho mejor :D .

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate