2017-02-25 71 views
1

我試圖從HTML的導入片段向正文中添加一個節點(具有子節點)現有的HTML DOM文檔。我一直在嘗試讓節點追加到正確的位置。似乎無法讓PHP appendChild在導入html節點時正常工作

這裏是我的代碼:

$lastnode = $loaded_file->getElementsByTagName('body')->item(0)->lastChild; 
$newnode = $editor_doc->getElementsByTagName('body')->item(0)->firstChild; 
$newnode = $loaded_file->importNode($newnode, True); 
$lastnode->appendChild($newnode); 

$loaded_file是加載一個DOMDocument使用loadHTML一個HTML文件。 $editor_doc是HTML片段還裝載如使用loadHTML

輸出一個DOMDocument如下:

[Entire document of $loaded_file ending with </html>] 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 
<html><body><p>1974 
[the correct html snippet] 
</p></body></html> 

2問題: 1)片段是在錯誤的地方。我認爲它是作爲身體標記的孩子追加它的,我做錯了什麼? 2)我不知道額外的!DOCTYPE,html,body p和1974文本是從哪裏來的。我的代碼中沒有任何內容增加了這一點。似乎顯示時,我使用appendChild任何東西。

我在做什麼錯?

在此先感謝!

回答

0

修正了它。顯然,而不是使用loadHTML(readfile($filename))你必須使用loadHTMLfile($filename)),似乎一切正確加載顯然它不是,我不知道爲什麼。但一旦我改變了一切似乎正常工作。

相關問題