将节点从一个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);
答案 0 :(得分:0)
<强>答案:强>
似乎为了执行深层复制,您需要将true作为第二个参数传递给importNode。
$spanCopy = $doc1->importNode($span, true);