Tengo un archivo xml en el que estoy almacenando contenido HTML en una etiqueta de elemento llamada <body>. Ahora estoy tratando de leer todo el contenido HTML de la etiqueta del cuerpo usando XML DOM en JavaScript.

Probé este código:

var xmlDoc=loadXMLDoc('QID_627.xml');
var bodytag = xmlDoc.getElementsByTagName("body");
document.write(bodytag);

Pero muestra el mensaje [object HTMLCollection] en la pantalla del navegador.

1
Manish Sharma 13 abr. 2009 a las 16:55

3 respuestas

La mejor respuesta

Andrew Hare señaló que getElementsByTagName () siempre devuelve una matriz, por lo que debe usar bodytag [0] para obtener el elemento que desea. Esto es correcto, pero no está completo ya que incluso cuando lo haga, recibirá un mensaje igualmente inútil "[objeto ElementName ]".

Si está configurado para usar document.write (), puede intentar serializar el contenido de la etiqueta del cuerpo con

 document.write(bodytag[0].innerHTML);

Mejor aún sería unir directamente los nodos DOM de origen a su DOM de destino.

Usarías algo como

document.getElementById("destinationNodeId").appendChild(bodytag[0]);

Puede haber algunos problemas con la conexión de nodos DOM de otro documento que pueden requerir que copie los nodos o salte a través de otros aros para que funcione.

1
Peter Dolberg 13 abr. 2009 a las 13:24

Prueba esto:

var xmlDoc=loadXMLDoc('QID_627.xml');
var bodytags = xmlDoc.getElementsByTagName("body");
document.write(bodytags[0]);

getElementsByTagName devuelve una matriz de elementos (incluso si solo se encuentra uno) por lo que debe subíndice la matriz para recuperar su elemento.

2
Andrew Hare 13 abr. 2009 a las 13:00

Debes usar document.write(bodytag.toXMLString());

EDITAR: Andrew Hare también señala que primero debe suscribirse. Creo que es posible que aún necesite usar la llamada toXMLString también.

0
Jesse Rusak 13 abr. 2009 a las 13:39