2013-07-11 2 views
1

У меня есть php-скрипт для создания магазина.PHP DomDocument, добавить элемент страницы к другому

Итак, первый я получить свой HTML-страницу с йот документа:

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

webHTML() просто класс пользовательских DomDocument. Итак, я получаю свой основной div (inter), и я делаю некоторые обработки в этом div до 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 возвращает DOMNodeList, appendChild ожидает 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

У меня есть 'Wrong Error Document' освобождение сейчас ... –

+0

Теперь все в порядке .. спасибо! –

+0

рад, что это сработало :) –

Смежные вопросы