Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Ajax + xml

Estas en el tema de Ajax + xml en el foro de Frameworks JS en Foros del Web. Buenas!!! Estoy intentando leer un documento xml... y el problema que tengo es que no se como sacar los valores de los nodos... hago un ...
  #1 (permalink)  
Antiguo 04/05/2009, 01:17
machoman112233
Invitado
 
Mensajes: n/a
Puntos:
Ajax + xml

Buenas!!!

Estoy intentando leer un documento xml... y el problema que tengo es que no se como sacar los valores de los nodos... hago un alert y me muestra todo en blanco...

Código xml:
Ver original
  1. <?xml version='1.0' encoding='iso-8859-1'?>
  2. <xml_important>
  3.     <xml_see>
  4.         <!-- mostrar la advertencia o no: hidden - visible -->
  5.         hidden
  6.     </xml_see>
  7.    
  8.     <xml_text>
  9.         <!-- continido de la advertencia-->
  10.         Esto esta cerrado por algun motivo...
  11.     </xml_text>
  12.    
  13.     <xml_title>
  14.         <!-- titulo de la advertencia-->
  15.         ATENCIÓN
  16.     </xml_title>
  17. </xml_important>

Código javascript:
Ver original
  1. function ajaxLoad()
  2. {
  3.     var ajax = null;
  4.    
  5.     if(window.XMLHttpRequest)
  6.     {
  7.         ajax = new XMLHttpRequest();
  8.     }
  9.     else if(window.ActiveXObject)
  10.     {
  11.         ajax = new ActiveXObject("Microsoft.XMLHTTP");
  12.     }
  13.     else
  14.     {
  15.         ajax = false;
  16.     }
  17.    
  18.     return(ajax);
  19. }
  20.  
  21. function xmlLoad(file)
  22. {
  23.     var ajax = ajaxLoad();
  24.     var content = null;
  25.     ajax.open("GET",file);
  26.            
  27.     ajax.onreadystatechange = function()
  28.     {
  29.         if(ajax.readyState == 4)
  30.         {
  31.             content = ajax.responseXML;
  32.            
  33.             var xml_adv = content.getElementsByTagName("xml_important")[0];
  34.             alert(xml_adv.getElementsByTagName("xml_see")[0].firstChild.nodeValue);        
  35.         }
  36.     }
  37.     ajax.send(null);
  38.     //return(content);
  39. }
  40.  
  41.  
  42. window.onload = function()
  43. {
  44.     xmlLoad("prova.xml");
  45. }
  #2 (permalink)  
Antiguo 04/05/2009, 01:45
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Respuesta: Ajax + xml

Hola:

Estoy viendo que los primeros nodos son del tipo comentario, tal vez te convenga quitarlos, o en vez de recuperar el nodo "firstChild" probar con lastChild... o hacer un recorrido de esos nodos...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 04/05/2009, 02:05
machoman112233
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ajax + xml

Prebe poner lastChild, quitar los comentarios, incluso poner entre <![CDATA[]] y nada... lo mas fuerte es que en IE(8) funciona y en la resta no... cuando normalmente me pasa lo contrario...
  #4 (permalink)  
Antiguo 04/05/2009, 02:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Respuesta: Ajax + xml

Hola:

Has probado abrir el xml directamente desde el navegador... Si pones algún espacio antes de la cabecera xml, con firefox da error...

En mis pruebas suelo cambiar la línea Ajax.open por window.open, para ver si el navegador lo abre bien...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 04/05/2009, 07:02
machoman112233
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ajax + xml

Al final todo era por los espacios en blanco... al quitar los comentarios, no quite la linea en blanco que dejaron...

Gracias por la ayuda!!!!!

SAL2!!!
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 14:49.