Как отобразить элемент DOME? - PullRequest
4 голосов
/ 12 мая 2010

Я использую код readability для извлечения HTML из веб-страницы. Как мне отобразить это на странице?

$content = grabArticle($webpage);
echo $content;

ERROR => Object of class DOMElement could not be converted to string...

Ответы [ 3 ]

5 голосов
/ 27 августа 2012

Ответ Марка Б заставил меня пойти по правильному пути, но у меня была похожая потребность, и это был код, на который я приземлился:

$newdoc = new DOMDocument;
$node = $newdoc->importNode($node, true);
$newdoc->appendChild($node);
$html = $newdoc->saveHTML();
5 голосов
/ 12 мая 2010
$content = grabArticle($webpage);

$newdoc = new DOM;
$newdoc->importNode($content);

$html = $newdoc->saveHTML();

Это создаст новый полный документ HTML на основе узла, который вы извлекли в grabArticle. Если вы вставляете это в другую HTML-страницу, вам нужно убрать начальные / конечные теги, которые вставляет DOM.

4 голосов
/ 09 августа 2013

Да, ответ, который дал Майк, правильный. Вот простой пример, который берет найденные узлы

и создает новый документ.

$newdoc = new DOMDocument;
$nodes = $oldoc->getElementsByTagName('p');
foreach($nodes as $node)
{
    $newnode = $newdoc->importNode($node, true);
    $newdoc->appendChild($newnode);
}
//print the new html
$html = $newdoc->saveHTML();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...