Я использую код удобочитаемости для извлечения HTML с веб-страницы. Как отобразить его на странице?
$content = grabArticle($webpage); echo $content; ERROR => Object of class DOMElement could not be converted to string...
$content = grabArticle($webpage); $newdoc = new DOM; $newdoc->importNode($content); $html = $newdoc->saveHTML();
Это создаст новый полный HTML-документ на основе узла, который вы извлекли в grabArticle. Если вы вставляете это на другую HTML-страницу, вам нужно будет снять верхние / трейлинг-теги, которые DOM вставляет.
Ответ Marc B дал мне правильный путь, но у меня была аналогичная потребность, и это был код, на который я приземлился:
$newdoc = new DOMDocument; $node = $newdoc->importNode($node, true); $newdoc->appendChild($node); $html = $newdoc->saveHTML();
Да, ответ, который дал Майк, правильный. Вот простой пример, который принимает
узлы найдены и создают новый документ.
$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();