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.

Por Christian Portuguez el 19 de Junio de 2007
Christian Portuguez C.
www.elportu.com
Christian, perdón por urgar en tus mp3 pero no me pude resistir a la música de UB40 (Se va cantando : "... I can't stop Grooving, grooving...").
Por Christian Portuguez el 28 de Julio de 2007
Un abrazo desde Lima - Perù
Christian Portuguez
www.elportu.com
Por Arnau el 16 de Diciembre de 2007
Un programa que me ha sido de mucha ayuda al trabajar con AS2 y XML ha sido SEPY. Buenisimo!
Por Miguel el 11 de Marzo de 2008
Por Jose el 15 de Octubre de 2008
Por Alfonso blog el 04 de Noviembre de 2008
Por miguel el 05 de Febrero de 2009
Por nhack el 30 de Abril de 2009
1037: Packages cannot be nested.
Alguna ayuda?
Por angel el 01 de Mayo de 2009
no se como quitar el nombre del nodo para ke salga solo el valor de este mismo
<nombre>paco</nombre> siempre sale asi en pantalla
y no se como kitarles el nombre del nodo.
Por ilich el 25 de Junio de 2009
item.@artista.toString();
item.@artista.toXMLString();
una de las dos te funcionará.
Por Miztoquio el 20 de Julio de 2010
Por Zorel el 26 de Agosto de 2010
En el primer fotograma de archivo.swf, pon
trace(datos)
deberia mostrarte "unxml.xml"
luego para cargarlo, basaria con
new URLRequest(datos)
Por chester12 el 09 de Marzo de 2011