如何获取XML文档(AJAX)的innerHTML?

JCO*_*611 4 javascript xml ajax

在AJAX查询之后,返回XML文件.我能够"解析"该文件,但是当涉及获取元素的"innerHTML"(或在本例中为"innerXML")时,问题就出现了.

如果XML元素,即"内容",只包含我可以做的文本:( content.childNodes[0].nodeValue假设内容引用XML元素"content").但该元素包含其他元素:

<stackoverflow reason="tribute to this page">
   <content>
      <div><span><p>Some more HTML elements</p></span></div>
   </content>
</stackoverflow>
Run Code Online (Sandbox Code Playgroud)

我需要内容复制<content><div>页面中的现有内容,我该怎么做?

防爆. myDiv.innerHTML = content.innerHTML;

Oli*_*cal 5

尝试将HTML放在CDATA标记中,如下所示:

<stackoverflow reason="tribute to this page">
   <content>
      <![CDATA[<div><span><p>Some more HTML elements</p></span></div>]]>
   </content>
</stackoverflow>
Run Code Online (Sandbox Code Playgroud)

然后通过将数据插入元素innerHTML.

document.getElementById('target').innerHTML = content.childNodes[0].nodeValue;
Run Code Online (Sandbox Code Playgroud)


phi*_*hag 1

innerHTML是一个你根本不应该使用的 hack。相反,使用普通的DOM函数:

myDiv.appendChild(document.adoptNode(content));
Run Code Online (Sandbox Code Playgroud)

  • -1 表示“innerHTML 是一种你根本不应该使用的 hack”。 (3认同)
  • +1,但请注意 Internet Explorer 不支持 `adoptNode()` 和 `importNode()`。幸运的是,[存在解决方法](http://help.dottoro.com/ljdfwkmx.php)。 (2认同)