【发布时间】:2017-09-16 16:12:32
【问题描述】:
官方文档说 DOMElement 继承了方法 cloneNode http://php.net/manual/en/class.domelement.php 。如果我尝试克隆,它不起作用。如何将元素从一个 DOMDocument 复制到另一个?也就是说,我的头部放错了位置,因此我必须以某种方式复制头部和身体,而不是按照正确的顺序呼应它们。
ob_start();
$viewData = $this->data;
include_once( $this->viewTemplPath.$this->file );
$buffer = ob_get_clean();
$doc = new \DOMDocument();
$doc->loadHTML($buffer);
$head = $doc->getElementsByTagName('head')->item(0);
print_r('<br><br> 184 view.php head='); var_dump($head);
$body = $doc->getElementsByTagName('body')->item(0);
print_r('<br><br> 188 view.php body='); var_dump($body);
$docNew = new \DOMDocument();
$headNew = $head->cloneNone(true); // Fatal error: Call to undefined method DOMElement::cloneNone()
$docNew->appendChild($headNew);
$bodyNew = $body->cloneNone(true); // Fatal error: Call to undefined method DOMElement::cloneNone()
$docNew->appendChild($bodyNew);
echo $docNew->saveHTML();
【问题讨论】:
-
也许你应该使用
cloneNode()而不是cloneNone() -
也许是
->cloneNode?不是cloneNone -
另外我建议你使用一些IDE来防止这样的错误:)
-
IDE 是什么意思?
-
这就是我所说的弗洛伊德错字!
标签: php dom clone domdocument