
Etiquetas: XML URLLoader URLRequest elements
El siguiente código carga un XML y recorre sus nodos y atributos imprimiendolos en pantalla.
El XML que he utilizado es el siguiente:
<Discos> <Disco puntuacion="10"><grupo id="20">The Knife</grupo>
<titulo>Deep Cuts</titulo>
</Disco> <Disco puntuacion="7"><grupo id="21">Jose Gonzalez</grupo>
<titulo>Veneer</titulo>
</Disco></Discos>Y el código AS:
//Importo las clases necesariasimport flash.display.*;
import flash.events.*;
import flash.net.*;
//Asigno la url que se va a cargarvar url:String = "discos.xml";
var XmlExterno:XML;
//Carga el XMLfunction CargarXML() {
//Creo el objeto cargadorvar loader:URLLoader = new URLLoader();
//Le añado los listenersponerListeners(loader);
//Creo el objeto que contendrá la peticiónvar peticion:URLRequest = new URLRequest(url);
//Cargo la peticiónloader.load(peticion);
}//Añade los listeners al cargadorfunction ponerListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
}//Funcion que se ejecuta cuando termina la descarga.function completeHandler(event:Event):void {
var cargador:URLLoader = event.target as URLLoader;
XmlExterno = new XML(cargador.data);
for each(var nodo:XML in XmlExterno.elements()){
//Devuelve el atributo puntuaciontrace(nodo.@puntuacion);
//Devuelve el contenido del nodo <grupo>trace(nodo.grupo);
//Devuelve el valor del atributo id dentro del nodo <grupo>trace(nodo.grupo.@id);
//Devuelve el contenido del nodo titulotrace(nodo.titulo);
}}//EmpezamosCargarXML();
Hola Daniel, te pongo un ejemplo. En el ejemplo que yo tengo, para saber el numero de nodos "Disco", sería:
XmlExterno.Disco.length();
--VAR sesionseleccionada="g0GUgQ6iRW" --VAR i=0;/*Cómo le digo que recorra todo el XML y si el valor del nodofor each (var nodo:XML in respuestaXML.elements()){ if(detalleXML.elements("sesion")[i].toString()==sesionseleccionada{ txt_detalle.text=detalleXML.elements("Descripcion")[i].toString() } }Cabe mencionar que puede haber varios nodos (registros) con ese mismo valor de sesion, por lo que también se concatenarían en el txt_detalle.text. Gracias por su ayuda. Saludos