【问题标题】:Can't seem to get PHP appendChild to work correctly when importhing html node导入 html 节点时似乎无法让 PHP appendChild 正常工作
【发布时间】:2017-07-16 14:44:28
【问题描述】:

我正在尝试将一个节点(带有子节点)从导入的 html 的 sn-p 附加到现有的 html DOM 文档的正文中。我一直在尝试让节点附加到正确的位置。

这是我的代码:

$lastnode = $loaded_file->getElementsByTagName('body')->item(0)->lastChild;
$newnode = $editor_doc->getElementsByTagName('body')->item(0)->firstChild;
$newnode = $loaded_file->importNode($newnode, True);
$lastnode->appendChild($newnode);

$loaded_file 是一个使用 loadHTML 作为 DOMDocument 加载的 html 文件。 $editor_doc 是 html sn-p 也使用 loadHTML 加载为 DOMDocument

输出如下:

[Entire document of $loaded_file ending with </html>]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><p>1974
[the correct html snippet]
</p></body></html>

2 个问题: 1)sn-p 放错地方了。我以为它是作为body标签的孩子附加的,我做错了吗? 2) 我不知道额外的 !DOCTYPE、html、body p 和 1974 文本来自哪里。我的代码中没有任何内容可以添加。当我在任何东西上使用 appendChild 时似乎会出现。

我做错了什么?

提前致谢!

【问题讨论】:

    标签: php html


    【解决方案1】:

    修复它。显然,您必须使用loadHTMLfile($filename)) 而不是使用loadHTML(readfile($filename)),而似乎一切都正确加载,但显然不是,我不知道为什么。但是一旦我改变了一切似乎都可以正常工作。

    【讨论】:

      猜你喜欢
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 2015-04-06
      • 1970-01-01
      • 2017-09-04
      • 2012-05-06
      • 2013-02-17
      相关资源
      最近更新 更多