Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Recorrer XML de forma recursiva con Javascript

Estas en el tema de Recorrer XML de forma recursiva con Javascript en el foro de Javascript en Foros del Web. Hola buenas tardes a todos :) Estoy intentando leer un XML de forma recursiva con Javascript, pero no recorre todas las ramas del DOM y ...
  #1 (permalink)  
Antiguo 12/12/2015, 09:34
Avatar de Ratus-BROWN  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 169
Antigüedad: 15 años, 1 mes
Puntos: 8
Recorrer XML de forma recursiva con Javascript

Hola buenas tardes a todos :)


Estoy intentando leer un XML de forma recursiva con Javascript, pero no recorre todas las ramas del DOM y no se que estoy haciendo mal

Esta es la función recursiva:

Código Javascript:
Ver original
  1. function datos2(hijos) {
  2.    
  3.          if(hijos.childNodes.length==0)
  4.          {
  5.           return -1;
  6.          }
  7.          else
  8.          {
  9.              for(i=0;i<hijos.childNodes.length;i++){
  10.              return datos2(hijos.childNodes[i]);
  11.          }
  12.       }
  13.  }

Y esta la primera llamada, le paso como argumento el primer nodo del XML.

Código Javascript:
Ver original
  1. datos2(xmlDoc.documentElement);


Basicamente lo que hago es llamar a la función para cada hijo y si llega a un nodo hoja termina la recursión. Lo que ocurre es que no navega por todo el árbol. ¿Alguien puede orientarme un poco sobre que estoy haciendo mal?

Gracias.
Saludos.
__________________
Disturb_downstairs (....we are cooking!)
  #2 (permalink)  
Antiguo 12/12/2015, 15:03
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 6 meses
Puntos: 578
Respuesta: Recorrer XML de forma recursiva con Javascript

Debes eliminar el return, ya que no pinta nada

Código Javascript:
Ver original
  1. function datos2(hijos) {
  2.    
  3.          if(hijos.childNodes.length==0)
  4.          {
  5.           return -1;
  6.          }
  7.          else
  8.          {
  9.              for(i=0;i<hijos.childNodes.length;i++){
  10.                 datos2(hijos.childNodes[i]);
  11.          }
  12.       }
  13.  }
  #3 (permalink)  
Antiguo 12/12/2015, 15:18
Avatar de Ratus-BROWN  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 169
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Recorrer XML de forma recursiva con Javascript

Hola :)


Si, eso lo he probado, pero extrañamente sin el return solo hace la exploración de una parte del árbol es decir evalúa solo los descendientes de uno de los hijos de raíz, el resto no lo hace.....la verdad no se que puede ser :(
__________________
Disturb_downstairs (....we are cooking!)
  #4 (permalink)  
Antiguo 12/12/2015, 15:29
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 6 meses
Puntos: 578
Respuesta: Recorrer XML de forma recursiva con Javascript

¿Y si declaras la variable con var? Yo lo he probado y funciona bien.
  #5 (permalink)  
Antiguo 12/12/2015, 17:29
Avatar de Ratus-BROWN  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 169
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Recorrer XML de forma recursiva con Javascript

¿Te refieres a la variable i del for?

Gracias.
Saludos.
__________________
Disturb_downstairs (....we are cooking!)

Etiquetas: dom, recursion, xml
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 04:25.