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

Problemas con Ajax y xml

Estas en el tema de Problemas con Ajax y xml en el foro de Frameworks JS en Foros del Web. Hola, tengo un problema espero alguien pueda ayudarme porque me estoy volviendo loca, el escenario es el siguiente: Existe una jsp que carga unos combos ...
  #1 (permalink)  
Antiguo 03/07/2007, 21:32
 
Fecha de Ingreso: noviembre-2006
Mensajes: 33
Antigüedad: 18 años
Puntos: 0
Problemas con Ajax y xml

Hola, tengo un problema espero alguien pueda ayudarme porque me estoy volviendo loca, el escenario es el siguiente:

Existe una jsp que carga unos combos box de diferentes XML (no sé por qué lo hicieron así pero bueno) entonces con base en la técnica del prototype obtengo de la siguiente manera:

new Ajax.Request(sUrl,
{
method:'get',
onSuccess: function(transport){
var responseXML = transport.responseXML.documentElement;
setComboBene(responseXML);
}
});

El response del XML se le pasa a la funcion setComboBene, cuando llegó ahí le hago un responseXML.responseText para ver qué es lo que se está formando en el xml y el resultado es el siguiente:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<beneficiarios ren="1" sal="0" fecha="02/05/2007">
</beneficiarios>

Posteriormente hago lo siguiente:

var hola = responseXML.getElementsByTagName("beneficiarios")[0];
alert(hola);

Esperando que me traiga un objeto que pueda manipular como yo quiera sin embargo no trae nada... inicialmente me marcaba nulo, pero era porque no estaba poniendo la cabecera.... ahora de verdad que no sé qué está pasando si el responseText si me está trayendo el xml formado.... cabe destacar que he probado poniendo otros encoding.. pero nada...

¿alguna idea?

gracias anticipadas.....
  #2 (permalink)  
Antiguo 04/07/2007, 09:16
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 1 mes
Puntos: 3
Re: Problemas con Ajax y xml

mm que tal, me parece que el problema es la estructura de tu XML formado, por lo menos io no he visto nada en donde en una etiqueta de XML le pongan tipo parametros como en tu caso ( <beneficiarios ren="1" sal="0" fecha="02/05/2007"> ) asi como lo tienes no se si funcione, pero lo que si estoy seguro es que no te trae nada por que no hya valor entre tus etiquetas de "beneficiarios" , osea algo como <beneficiarios ...> Algún Valor </beneficiarios>, pon

try{
var hola = responseXML.getElementsByTagName("beneficiarios")[0];
alert(hola);
}catch(e){alert('Error ' + e)}

a ver que te arroja....pero pienso que es lo que te comento...
__________________
Wow! No se que decir...
  #3 (permalink)  
Antiguo 05/07/2007, 08:19
 
Fecha de Ingreso: marzo-2007
Mensajes: 58
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Problemas con Ajax y xml

Como dice Zyon, parece que el problema es que el nodo beneficiarios no tiene ningún valor.
Yo probaría a pedirle el valor de alguno de los atributos:

var hola = responseXML.getElementsByTagName("beneficiarios")[0].getAttribute("ren");
alert(hola);
  #4 (permalink)  
Antiguo 05/07/2007, 11:25
 
Fecha de Ingreso: noviembre-2006
Mensajes: 33
Antigüedad: 18 años
Puntos: 0
Re: Problemas con Ajax y xml

Hola chicos, gracias a ambos por responder, ya le quité los atributos a la tag y sigue sin hacer nada, también puse el alert como me dijeron alert(ajax.getElementsByTagName("beneficiarios")[0].getAttribute("ren")); pero sigue sin hacer nada....

:S Es chistoso que sea el atributo porque tengo otro combo en la misma página que jala exactamente con el mismo procedimiento y no tiene problemas..... no hay diferencias notables a excepción de que en este XML de usa un CDATA que de inicio no sale pero no sé si eso tmb pueda hacerle ruido....

¿Alguna otra idea?

Gracias de nuevo
  #5 (permalink)  
Antiguo 05/07/2007, 11:30
 
Fecha de Ingreso: noviembre-2006
Mensajes: 33
Antigüedad: 18 años
Puntos: 0
Re: Problemas con Ajax y xml

Olvidé comentar algo.. :S

Perdón Zion, cuando pongo lo que me dices me manda en el alert

Object Error.... eso qué significa? o cómo lo arreglo... mil gracias
  #6 (permalink)  
Antiguo 05/07/2007, 15:25
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 1 mes
Puntos: 3
Re: Problemas con Ajax y xml

que tal, bueno es justo lo que te comente, no hay un valor entre tus etiquetas, por lo que te manda un error, solo no apareceria si en BENEFICIARIOS tge asegures de que le das un valor, si no es asi, pues solo manejalo con excepciones, cuando tengas un error manda un mensaje o lo que necesites...Suerte!
__________________
Wow! No se que decir...
  #7 (permalink)  
Antiguo 12/07/2007, 14:35
 
Fecha de Ingreso: noviembre-2006
Mensajes: 33
Antigüedad: 18 años
Puntos: 0
Re: Problemas con Ajax y xml

Hola a todos..... les comento que ya resolví el problema.... les cuento cómo para aquellos a los que les suceda puedan componerlo porque a mi si me llevó un buen rato.

Para comenzar la aplicación no la hice yo por lo que me costó un poco más entender la lógica de algunas cosas, pero finalmente salió todo bien. El problema era el siguiente:

La razón por la cual el responseXML.getElementsByTagName("beneficiarios")[0]; venía como nulo es porque no estaba tómando como válido el encabezado que traía el XML, inicialmente el xml es armado por una jsp que consulta ejbs y dependiendo de su resultado construye una cadena que posteriormente se toma como contenido del xml, a pesar de que en la construcción de la cadena le estaba poniendo el encabezado al xml, no lo tomaba, aún cuando el response.setContentType("text/xml; charset=ISO-8859-1"); trajera lo que debe de tener y también en las directivas de la jsp incluía <%@ page contentType="text/xml. Adicionalmente comento que estaba tratando el ajax con el framework del prototype pues en sus atributos lo forzaba igual con el encoding y contentype a que procesara este tipo de archivo.... y seguia sin pasar nada.... Más confuso aún cuando existían dos procedimientos exactamente iguales y funcionaban.... tal cual acabo de mencionarlo. Depués de haber leído muchas cosas y de no encontrar una razón "lógica" de porque unos funcionaban y otros sí me dí a la tarea de hacer un experimento poniendo estáticamente el encabezado en la jsp como si fuera un xml .... y voilá..... funcionó... lo que puse estáticamente fue lo siguiente.... <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

Aunado a esto, la jsp tenía detalles que había que corregir aún .... porque para mi mala fortuna (o buena no lo sé) tiene que funcionar en 3 navegadores como mínimo y estos son FF, IE y Safari para mac o Windows.

Esos detalles son los siguientes:

1.- Cuando hacemos un document.getElementById generalmente toma el id del tag que se desee... IE es capaz de tomar ese id como name,... lo interpreta casi como lo mismo y no tenía problema.... sin embargo FF y Safari no pueden... por lo que les recomiendo que revisen bien este punto.

2.- El xml tenía los "famosos retornos de carro" para que se formateara de una manera entendible para el humano..... y es cuando uno se pregunta... si la máquina es quien lo interpreta... qué más dá como venga organizado... Los retornos de carro le hacen ruido al XML ... otra cosa más por lo que mi componente no funcionaba.

3.- Finalmente, cuando hacemos un nodo.childNodes[0].nodeValue obtenemos un nodo X de un determinado XML, cuando este nodo no contiene nada... IE y FF son capaces de interpretarlo como vacío OJO! VACÍO.... NO NULO ... sin embargo Safari no es capaz de eso... y no encuentra el nodo, razón por la cual simplemente no hace nada y se pierde.

Bueno espero que esta información le sea de ayuda a alguien... para que no pierda tanto tiempo como yo... y para los que ya lo sabían... que mala onda que no me avisaron antes !!! jaja

Saludos desde México!!
  #8 (permalink)  
Antiguo 15/07/2007, 16:53
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 6 meses
Puntos: 35
Re: Problemas con Ajax y xml

loading.......


Interesante :D gracias por la info, pero creo que te hubieras ahorrado tiempo si desde firebug habilitabas la opcion de validar XML y te decía el error XML, ahora bien respecto a lso nodos vacios o null, con hacer una negacion al nodo se asume que es del tipo VACIO, NULL o ERROR .

Vaya pedazo de texto que te rajaste jejeje saludos desde Bolivia.


connection closed.
__________________

Maborak Technologies
  #9 (permalink)  
Antiguo 15/07/2007, 19:39
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Re: Problemas con Ajax y xml

Hola:

No tenemos que olvidarnos que una respuesta xml también se procesa con el DOM... y una colección getElementsByTagName tiene su atributo length, y cada uno de los índices responde con un valor lógico al método hasChildNodes()

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 21:12.