Ver Mensaje Individual
  #13 (permalink)  
Antiguo 06/03/2011, 16:05
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 9 meses
Puntos: 1485
Respuesta: Leer xml en Firefox

sucede que iexplorer no analiza los nodos de la misma forma que firefox o cualquier otro navegador. fijate que iexplorer ignora los nodos tipo TextNode que no contengan caracteres imprimibles. en cambio, lo correcto seria que dichos nodos se crearan. o sea, childNodes[3] no hace referencia al mismo elemento en iexplorer y firefox. tienes dos formas de como corregirlo, la mas facil siendo el uso de la funcion getElementsByTagName. a juzgar por el valor de los indices, asumo que queras obtener el texto dentro de la etiqueta <tmp>. por tanto...
Código:
xmlObj.getElementsByTagName("tmp")[0].firstChild.nodeValue;
// indice 0 porque segun el documento existe un solo elemento <tmp> ;
la otra alternativa consiste en evitar crear TextNode "sin contenido" al escribir o crear el documento xml. para que tengas una idea de lo que me refiero.
Código xml:
Ver original
  1. <parent>     <child>content</child></parent>

fijate que hay una separacion entre el elemento <parent> y <child>. esa separacion se considera un TextNode compuesto -en este caso- especificamente por espacios. en el caso de iexplorer, el nodo <parent> tendria un nodo hijo, mientras que los navegadores estandar tendrian dos hijos para el mismo nodo. entonces, para evitarlo, habria que escribir el documento si ese tipo de separacion.

Código xml:
Ver original
  1. <parent><child>content</child></parent>

ahora iexplorer tendria la misma cantidad de nodos hijos que los demas navegadores. ciertamente es complejo tener que escribir un documento de esa forma porque entonces casi todo terminaria en varias lineas y seria ilegible el cual es importante para depurar/actualizar el documento. una tecnica que puedes adoptar seria introducir el salto de linea dentro de la declaracion del elemento.

Código xml:
Ver original
  1. <parent
  2. ><child>content</child
  3. ></parent>

conclusion: es menos complicado utilizar getElementsByTagName a diferencia de las ultimas alternativas.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 06/03/2011 a las 16:11