2015-12-17 144 views
1

我有3個DOMDocuments,從一個DOM文檔添加元素到另外一個PHP

$legacyDomDocument1 = new DOMDocument(); 
$legacyDomDocument2 = new DOMDocument(); 
$legacyDomDocument3 = new DOMDocument(); 

我想這三個文件的相同元素,並刪除了一些孩子的。

$standortName = $legacyDomDocument->getElementById('produkt_title'); 
$standortName->parentNode->removeChild($standortName); 
$standortName = $legacyDomDocument2->getElementById('produkt_title'); 
$standortName->parentNode->removeChild($standortName); 
$standortName = $legacyDomDocument3->getElementById('produkt_title'); 
$standortName->parentNode->removeChild($standortName); 

我也從第一個DOM獲取導航欄。

$rs = $legacyDomDocument->getElementById('submenue'); 

我可以很容易地添加子菜單。

$r->appendChild($rs); 

但我仍然遇到問題,從其他兩個DOMDocuments添加元素。

$import = $legacyDomDocument->importNode($legacyDomDocument2, true); 
$legacyDomDocument->appendChild($import); 
$import = $legacyDomDocument->importNode($legacyDomDocument3, true); 
$legacyDomDocument->appendChild($import); 

我在做什麼錯? 使用saveHTML瀏覽器後說:

Warning: DOMDocument::importNode() [domdocument.importnode]: Cannot import: Node Type Not Supported in /is/htdocs/wp1175221_C648A6HQST/www/v9/legacyParser/index.php on line 82 

82號線是我的上述進口部分。我究竟做錯了什麼?

+0

忘記一些代碼: $ r-> appendChild($ pc1); $ r-> appendChild($ pc2); – Lightspeed

+0

你正試圖導入一個DOMDocument實例,這是行不通的。你究竟想要導入什麼? – VolkerK

+0

哦,忘了添加吧。 所有三個DOM都有相同的div('content_produkte')和幾個我想添加到第一個dom的信息。 – Lightspeed

回答

1

人們不能直接導入DOMDocument:你應該在層次結構中的深一點,使用documentElement屬性,而不是(即給你一個DOMElement):

$import = $legacyDomDocument->importNode($legacyDomDocument2->documentElement, true); 

順便說一句,看起來是適當追加太時使用documentElement

$legacyDomDocument->documentElement->appendChild($import); 

這裏的demo說明了這個概念。注意當您放棄中介documentElement時的差異:第二個文檔的內容基本上插入到根節點附近,這並不是期望的結果。

+0

這個tipp幫了我很多。謝謝。 – Lightspeed

相關問題