【问题标题】:How to read all child elements with tag names and their value from a xml file?如何从 xml 文件中读取所有带有标签名称及其值的子元素?
【发布时间】:2009-04-13 12:55:30
【问题描述】:

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

我试过这段代码:

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

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

【问题讨论】:

    标签: javascript xml dom


    【解决方案1】:

    试试这个:

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

    getElementsByTagName 返回一个元素数组(即使只找到一个),因此您需要为数组下标以检索您的元素。

    【讨论】:

      【解决方案2】:

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

      如果你准备使用 document.write(),你可以尝试用

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

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

      你会使用类似的东西

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

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

      【讨论】:

        【解决方案3】:

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

        编辑:Andrew Hare 还指出您需要先下标。我认为您可能还需要使用toXMLString 调用。

        【讨论】:

          猜你喜欢
          • 2012-04-22
          • 1970-01-01
          • 2010-10-25
          • 2023-03-10
          • 1970-01-01
          • 2011-12-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多