Código HTML:
<valor1>Si</valor1> <valor2>No</valor2> <valor3></valor3>
Código HTML:
vari.getElementsByTagName("valor...")[0].firstChild.data;
| |||
por que truena si no tiene valor? Que tal amigos, estoy trabajando con AJAX y recivo un objeto XML del cual manejo sus valores con DOM, pero tengo problemas cuando uno de los nodos del XML no tienen valor ( ejem. Código HTML: <valor1>Si</valor1> <valor2>No</valor2> <valor3></valor3> Código HTML: vari.getElementsByTagName("valor...")[0].firstChild.data;
__________________ Wow! No se que decir... |
| ||||
Re: por que truena si no tiene valor? Eso me supongo que será... porque vari.getElementsByTagName("valor3")[0] no tiene hijos, de manera que si haces un firstChild, no existe, y no tiene propiedades. Intentas hallar la propiedad data, y te da error. Deberías comprobar si existen hijos de valor3 para intentar extraerlo. Un saludo zyon.
__________________ - Haz preguntas inteligentes, y obtendrás más y mejores respuestas. - Antes de postearlo Inténtalo y Búscalo. - Escribe correctamente tus mensajes. |
| |||
Re: por que truena si no tiene valor? De hecho se que no tiene ningun valor, solo se pintan las etiquetas pero no le pongo ningún valor ya que en el query arroja que ese campo esta vacio, entonces por eso me genera error? al no encontrar un hijo que seria el dato que quiero extraer? Código HTML: vari.getElementsByTagName("valor...")[0].firstChild.data;
__________________ Wow! No se que decir... |
| ||||
Re: por que truena si no tiene valor? Resulta que "valor3" no tiene hijos. Cuando haces
Código:
te devuelve la cadena "Si" porque "valor1" tiene un hijo, un nodo de texto. Entonces los nodos de texto tienen la propiedad data, que es el texto que contienen.vari.getElementsByTagName("valor1")[0].firstChild.data; Al no haber nodo hijo (ni siquiera de texto al no contener ni un espacio), no contiene propiedad data (ni siquiera sé que ocurre si sólo haces firstChild, dará undefined?). Bueno el caso es que hay métodos DOM como hasChildNodes() o childNodes.length para averiguar si hay o no hijos. Deberás mirarlo antes. Lo que quieras devolver en ese caso ya es cosa tuya (false, cadena vacía, null...). Un saludo.
__________________ - Haz preguntas inteligentes, y obtendrás más y mejores respuestas. - Antes de postearlo Inténtalo y Búscalo. - Escribe correctamente tus mensajes. |
| |||
Re: por que truena si no tiene valor? a entiendo, si quiero usar el .data me seria conveniente antes verificar que contenga un valor...por ejemplo tambien e usado dos modos de extraer los datos de un nodo tipo Texto, el data y el nodeValue que diferencia hay entre esos dos¿?
__________________ Wow! No se que decir... |
| ||||
Re: por que truena si no tiene valor? Pues la verdad, nunca me lo había planteado, pero he encontrado ésto buscando: http://www.ventanazul.com/forum/showthread.php?t=1062 Y si w3c no menciona data para nada... pues habrá que utilizar nodeValue.
__________________ - Haz preguntas inteligentes, y obtendrás más y mejores respuestas. - Antes de postearlo Inténtalo y Búscalo. - Escribe correctamente tus mensajes. |
| |||
Re: por que truena si no tiene valor? a exacto, lo de data yo tampoco e encontrado informacion y por eso es que preguntaba la diferencia entre ese y nodeValue y checare la liga...
__________________ Wow! No se que decir... |