2009-04-13 9 views
1

Ich habe eine XML-Datei, in der ich einige HTML-Inhalte in einem Element-Tag namens <body> speichern. Jetzt versuche ich den gesamten HTML-Inhalt des body-Tags mit XML-DOM in JavaScript zu lesen.Wie liest man alle untergeordneten Elemente mit Tag-Namen und deren Wert aus einer XML-Datei?

habe ich versucht, diesen Code:

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

aber es zeigt [Objekt HTMLCollection] Meldung auf dem Browser-Bildschirm.

Antwort

1

Andrew Hare wies darauf hin, dass getElementsByTagName() immer ein Array zurückgibt, so dass Sie bodetag [0] verwenden müssen, um das gewünschte Element zu erhalten. Das ist richtig, aber nicht vollständig, denn selbst wenn Sie das tun, erhalten Sie immer noch eine ebenso sinnlose Nachricht "[Objekt ElementName]".

Wenn Sie sich mit document.write gesetzt sind() Sie können versuchen, den Inhalt des Body-Tag serialisiert heraus mit

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

Besser noch wäre direkt die Quelle DOM-Knoten in Ihrem Ziel DOM Befestigung .

würden Sie etwas verwenden, wie

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

Es mit dem Anbringen DOM-Knoten aus einem anderen Dokument einige Probleme sein können, die Sie benötigen die Knoten oder springen durch einige andere Bänder zu kopieren, damit es funktioniert zu haben.

0

Sie benötigen document.write(bodytag.toXMLString());

EDIT verwenden: Andrew Hare auch weist darauf hin, Sie zuerst SUBSCRIPT müssen. Ich denke, dass Sie möglicherweise noch den Anruf toXMLString auch verwenden müssen.

2

Try this:

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

getElementsByTagName gibt ein Array von Elementen (auch wenn nur eine gefunden wird), so müssen Sie das Array Subscript Ihr Element abzurufen.

Verwandte Themen