从另一个DOMDocument对象导入元素时,nodeValue会丢失

时间:2012-11-03 07:34:26

标签: php domdocument

将节点从一个DOMDocument对象导入另一个DOMDOcument对象时,nodeValue似乎丢失了。

Q1。有谁知道为什么? (这是一个错误?)

Q2。我该如何解决这个问题?


示例代码:

$doc1 = new DOMDocument();
$div = $doc1->createElement('div');

$doc2 = new DOMDocument();
$span = $doc2->createElement('span', 'Span text');

$spanCopy = $doc1->importNode($span);
$div->appendChild($spanCopy);
$doc1->appendChild($div);

$otp = $doc1->saveHTML();

var_dump($span->nodeValue);
var_dump($spanCopy->nodeValue);
var_dump($otp);

输出:

string 'Span text' (length=9)
string '' (length=0)
string '<div><span></span></div>' (length=25)

答案:

似乎为了执行深层复制,您需要将true作为第二个参数传递给importNode。

$spanCopy = $doc1->importNode($span, true);

1 个答案:

答案 0 :(得分:0)

<强>答案:

似乎为了执行深层复制,您需要将true作为第二个参数传递给importNode。

$spanCopy = $doc1->importNode($span, true);