2013-07-11 175 views
1

我有一個用於生成商店的PHP腳本。PHP DomDocument,將頁面的元素附加到另一個頁面

所以,首先我找回我的HTML頁面的DOM文檔:

$oPage = new webHTML("boutique_panier_HTML"); 
$oInter = $oPage->getElementById("inter"); 

webHTML()僅僅是一個自定義的DOMDocument類。所以,我檢索我的主要股利(國際),我做了一些治療到這個股前return $oPage->saveHTML();

所以,現在,沒關係。

我需要加載另一個頁面,檢索一個元素(表單)並將此元素放在我的$oInter上。

所以,return $oPage->saveHTML();前中庸之道,我做的:

$oPage2 = new webHTML("formulaire_bon_commande"); 
$oInter2 = $oPage2->getElementsByTagName("form"); 
$oInter->appendChild($oInter2); 

所以,我加載頁面「formulaire_bon_commande」,我找回我的元素的形式,我嘗試這個元素添加到我的$ oInter股利。

而與此代碼,我只是一個白頁...沒有影響。有任何想法嗎 ?

回答

2

方法getElementsByTagName返回DOMNodeListappendChild預計DOMNode,所以你必須遍歷$oInter2

$oInter2 = $oPage2->getElementsByTagName("form"); 
foreach ($oInter2 as $el){ 
    $node = $oPage->importNode($el, true); 
    $oInter->appendChild($node); 
} 

實施例:

$oPage = new DOMDocument(); 
$oPage->loadHTML('<html><p id="inter"></p></html>'); 
$oInter = $oPage->getElementById("inter"); 


$oPage2 = new DOMDocument(); 
$oPage2->loadHTML('<html><form><button></button></form></html>'); 
$oInter2 = $oPage2->getElementsByTagName("form"); 
foreach($oInter2 as $el) { 
    $node = $oPage->importNode($el, true); 
    $oInter->appendChild($node); 
} 

echo $oPage->saveHTML(); 

輸出:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 
<html><body><p id="inter"><form><button></button></form></p></body></html> 
+0

我有 '錯誤文檔錯誤'現在豁免... –

+0

現在沒事了..謝謝! –

+0

很高興它的工作:) –

相關問題