0
將節點從一個DOMDocument對象導入另一個DOMDOcument對象時,nodeValue似乎丟失。從另一個DOMDocument對象導入元素時,nodeValue丟失
Q1。有人知道爲什麼(這是一個bug?)
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);
很好的問題和回答自己 –
我在牆上撞了我的頭2個多小時,所以我決定在SO中發佈這個問題。 10分鐘後我自己想出了......墨菲定律我猜... – Tivie