Foros del Web » Creando para Internet » Flash y Actionscript »

Duda de cómo recorrer XML en flash y sacar sus datos

Estas en el tema de Duda de cómo recorrer XML en flash y sacar sus datos en el foro de Flash y Actionscript en Foros del Web. Hola a todos Este es mi primer mensaje en este magnífico foro. Ya llevo un tiempo leyendo vuestros posts, y será un placer participar en ...
  #1 (permalink)  
Antiguo 22/10/2009, 11:07
 
Fecha de Ingreso: septiembre-2009
Mensajes: 2
Antigüedad: 15 años, 2 meses
Puntos: 0
Duda de cómo recorrer XML en flash y sacar sus datos

Hola a todos

Este es mi primer mensaje en este magnífico foro. Ya llevo un tiempo leyendo vuestros posts, y será un placer participar en él.

Tengo el siguiente archivo XML

Código :
Código:
<listaDeClientes>
   <cliente>
      <idcliente>1</idcliente>
      <nombre>Dan</nombre>
      <apellidos>Bus</apellidos>
      <telefono1>963344111</telefono1>
      <telefono2>656870650</telefono2>
   </cliente>
   <cliente>
      <idcliente>3</idcliente>
      <nombre>María</nombre>
      <apellidos>De la O</apellidos>
      <telefono1>963300444</telefono1>
      <telefono2>626670644</telefono2>
   </cliente>
   <cliente>
      <idcliente>6</idcliente>
      <nombre>Pablo</nombre>
      <apellidos>Tor</apellidos>
      <telefono1>9616233440</telefono1>
      <telefono2></telefono2>
   </cliente>
</listaDeClientes>

Como ven bastante sencillo.
Ahora lo recorro en un bucle y le voy asignando los valores a unos arrays:

Código :
Código:
...
      largo = cargaXML.firstChild.childNodes.length;
      //Llenar los arrays de datos
      for (i=0; i<largo; i++){
         idcliente_var[i]= cargaXML.firstChild.childNodes[i].firstChild.firstChild.nodeValue;
         nombre_var[i]    = cargaXML.firstChild.childNodes[i].firstChild.nextSibling.firstChild.nodeValue;
         apellidos_var[i]= cargaXML.firstChild.childNodes[i].firstChild.nextSibling.nextSibling.firstChild.nodeValue;
         telefono1_var[i]= cargaXML.firstChild.childNodes[i].firstChild.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
         telefono2_var[i]= cargaXML.firstChild.childNodes[i].firstChild.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.nodeValue;
...

El caso es que el último campo del XML de cada hijo <cliente> no lo lee (devuelve 'undefined').
No hay manera para que lo lea. ¿me hechan un cable?

Creo que el problema es que no entiendo bien los xml.

Otra pregunta sería como evitar tanto nextSibling.
He intentado esto, pero no funciona:

Código :
Código:
         idcliente_var[i]= cargaXML.firstChild.childNodes[i].firstChild.firstChild.nodeValue;
         nombre_var[i]    = cargaXML.firstChild.childNodes[i].firstChild.firstChild.childNodes[1].nodeValue;
         apellidos_var[i]= cargaXML.firstChild.childNodes[i].firstChild.firstChild.childNodes[2].nodeValue;
         telefono1_var[i]= cargaXML.firstChild.childNodes[i].firstChild.firstChild.childNodes[3].nodeValue;
         telefono2_var[i]= cargaXML.firstChild.childNodes[i].firstChild.firstChild.childNodes[4].nodeValue;

He visto varios tutos por la red pero no me aclaro. ¿Cómo lo ven? :?
  #2 (permalink)  
Antiguo 22/10/2009, 13:11
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 17 años
Puntos: 51
Respuesta: Duda de cómo recorrer XML en flash y sacar sus datos

empieza ha estudiar el AS3 si quieres aprender a manejar mejor los xml

Código PHP:
var cargaXML:XML=<listaDeClientes>
   <
cliente>
      <
idcliente>1</idcliente>
      <
nombre>Dan</nombre>
      <
apellidos>Bus</apellidos>
      <
telefono1>963344111</telefono1>
      <
telefono2>656870650</telefono2>
   </
cliente>
   <
cliente>
      <
idcliente>3</idcliente>
      <
nombre>María</nombre>
      <
apellidos>De la O</apellidos>
      <
telefono1>963300444</telefono1>
      <
telefono2>626670644</telefono2>
   </
cliente>
   <
cliente>
      <
idcliente>6</idcliente>
      <
nombre>Pablo</nombre>
      <
apellidos>Tor</apellidos>
      <
telefono1>9616233440</telefono1>
      <
telefono2></telefono2>
   </
cliente>
</
listaDeClientes>;

var 
idcliente_var:Array=new Array();
var 
nombre_var:Array=new Array();
var 
apellidos_var:Array=new Array();
var 
telefono1_var:Array=new Array();
var 
telefono2_var:Array=new Array();

var 
largo:int cargaXML.child("cliente").length;
//Llenar los arrays de datos
for (var i:int=0i<largoi++) {
    
idcliente_var[i]= cargaXML.child("cliente")[i].idcliente;
    
nombre_var[i]   = cargaXML.child("cliente")[i].nombre;
    
apellidos_var[i]= cargaXML.child("cliente")[i].apellidos;
    
telefono1_var[i]= cargaXML.child("cliente")[i].telefono1;
    
telefono2_var[i]= cargaXML.child("cliente")[i].telefono2;

__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #3 (permalink)  
Antiguo 22/10/2009, 13:48
 
Fecha de Ingreso: septiembre-2009
Mensajes: 2
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Duda de cómo recorrer XML en flash y sacar sus datos

Hola Lynxcraft, gracias por contestar!!

Sí que es fácil con AS3 madre mía!! El "problema" es que yo se AS2, no AS3, y claro, tendría que cambiar todo mi programa y aprender sobre la marcha, y ahora mismo no tengo tiempo para aprender AS3, y utilizo Flash 8, que no se si soporta AS3. Si lo hiciera pues utilizo esto y el resto en As2, pero no creo que se pueda.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:43.