如何从xml文件中读取具有标记名称及其值的所有子元素?

时间:2009-04-13 12:55:31

标签: javascript xml dom

我有一个xml文件,我在其中将一些HTML内容存储在名为<body>的元素标记中。现在,我正在尝试使用JavaScript中的XML DOM读取body标签的所有HTML内容。

我试过这段代码:

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

但它在浏览器屏幕上显示[object HTMLCollection]消息。

3 个答案:

答案 0 :(得分:2)

试试这个:

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

getElementsByTagName返回一个元素数组(即使只找到一个元素),所以你需要下标数组来检索你的元素。

答案 1 :(得分:1)

Andrew Hare指出getElementsByTagName()始终返回一个数组,因此您必须使用bodytag [0]来获取所需的元素。这是正确的,但不完整,因为即使你这样做,你仍然会得到同样无用的“[object ElementName ]”消息。

如果您已开始使用document.write(),则可以尝试使用

序列化body标签的内容
 document.write(bodytag[0].innerHTML);

更好的是将源DOM节点直接附加到目标DOM中。

你会使用像

这样的东西
document.getElementById("destinationNodeId").appendChild(bodytag[0]);

从另一个文档中附加DOM节点可能会出现一些问题,这些问题可能需要您复制节点,或者跳过其他一些环节以使其工作。

答案 2 :(得分:0)

您需要使用document.write(bodytag.toXMLString());

编辑:Andrew Hare还指出你需要先下标。我想您可能仍需要使用toXMLString电话。