0

将节点从一个 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);
4

1 回答 1

0

回答:

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

$spanCopy = $doc1->importNode($span, true);
于 2012-11-03T07:43:45.487 回答