Comunidad de diseño web y desarrollo en internet online

Problema XML - Solo me reconoce el primer nodo hijo

Citar            
MensajeEscrito el 14 May 2007 09:34 am
Hola, apenas eh husmeado sobre el xml con flash eh visto los tutoriales y leido sobre xml, aunque no soy nuevo en la programacion tengo problemas con un pequeño ejemplo:

La idea es mostrar la discografia de un artista determinado y las letras de cada una de sus canciones. Para estas ultimas tenia pensado cargarlas de un arhivo te texto utilizando loadVars.

Mi archivo XML es el siguiente:

Código :

<?xml version="1.0" encoding="UTF-8"?>
<discografias>
   <album nombre="Fijacion Oral Vol. 1" fecha="6 de Junio de 2005">
      <cancion nombre="En Tus Pupilas" letra="fov101" duracion="4:24"/>
      <cancion nombre="La Pared" letra="fov102" duracion"3:20"/>
      <cancion nombre="La Tortura" letra="fov103" duracion"3:35"/>
      <cancion nombre="Obtener un Sí"   letra="fov104" duracion"3:21"/>
      <cancion nombre="Día Especial" letra="fov105" duracion"4:25"/>
      <cancion nombre="Escondite Inglés" letra="fov106" duracion"3:10"/>
      <cancion nombre="No" letra="fov107" duracion"4:47"/>
      <cancion nombre="Las de la Intuición" letra="fov108" duracion"3:42"/>
          <cancion nombre="Día de Enero" letra="fov109" duracion"2:55"/>
      <cancion nombre="Lo Imprescindible" letra="fov110" duracion"3:58"/>
      <cancion nombre="La Pared (Versión Acústica)" letra="fov111" duracion"2:41"/>
      <cancion nombre="La Tortura (Mix)" letra="fov112" duracion"3:12"/>
   </album>
</discografias>


Pero el problema esta en que solo me muestra el primer nodo. Me explico, si hay mas de un album solo me muestra el primero y de este solo la primera cancion.

Con el siguiente codigo trate de ver como funciona, ya lo hice de varias formas y no lo he conseguido hasta el momento.

Código :

var discos:XML = new XML();
discos.ignoreWhite = true;
discos.load("discografia.xml");


discos.onLoad = function( succes:Boolean ){
   if( succes ){
      album = this.firstChild.childNodes[0];
      nombAlb = album.attributes.nombre;
      fechAlb = album.attributes.fecha;
      trace( "Album: " + nombAlb );
      trace( "Fecha: " + fechAlb );
      
      cancion = album.childNodes[0];
      nomCan = cancion.attributes.nombre;
      letCan = cancion.attributes.letra;
      durCan = cancion.attributes.duracion;
      trace( "Cancion 1: " + nomCan );
      trace( "Letra: " + letCan );
      trace( "Duracion: " + durCan );
      trace( album.childNodes );

      cancion2 = album.childNodes[0];
      nomCan2 = cancion2.attributes.nombre;
      letCan2 = cancion2.attributes.letra;
      durCan2 = cancion2.attributes.duracion;
      trace( "Cancion 2: " + nomCan2 );
      trace( "Letra: " + letCan2 );
      trace( "Duracion: " + durCan2 );
   }
   else{
      trace( "Error al cargar xml" );
   }
}


Me gustaria que me ayudaran con el codigo que necesito para acceder acada nodo y a sus atributos.

Gracias.

Por narcraft

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 14 May 2007 11:11 pm
el nodo album tiene nodos hijos... "childNodes", itera con ellos

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 15 May 2007 06:18 am
Saludos Maikel.
Gracias por contestar, podrias poner un codigo de ejemplo para mostrar...por ejemplo todas las canciones? :D

Lo que pasa es que pareciera que mi archivo xml solo tuviera una cancion. solo puedo imprimir la primera y las demas undefined...

Gracias.

Por narcraft

1 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.