0

DOMDocument を使用してページ上のノードを検索し、その値を変数に格納して (動作中)、出力から削除したいという一見ユニークな状況があります。DOMDocument 出力からノードを削除し、その値を最初に保存する方法を理解できません。

最初にノードを完全に削除することができます。これは、変数に何も保存されていないことを意味します。または、ノードを削除しようとすると「Not Found Error」が表示されます。

<h6>ページには、削除する必要があるノード ( ) が 1 つだけあります。私がこれまでに持っているコード(エラーが見つからない)は以下のとおりです。

// Strip Everything Before and After Header Tags
$domdoc = new DOMDocument;
$docnew = new DOMDocument;

// Disable errors for <article> tag
libxml_use_internal_errors(true);
$domdoc->loadHTML(file_get_contents($file));
libxml_clear_errors();

$body = $domdoc->getElementsByTagName('body')->item(0);

foreach ($body->childNodes as $child){
    $docnew->appendChild($docnew->importNode($child, true));
}

// Get the Page Title
$ppretitle = $docnew->getElementsByTagName('h6')->item(0);
$pagetitle = $ppretitle->nodeValue;

// Remove Same Element From Output
$trunctitl = $docnew->removeChild($ppretitle);

// Save Cleaned Output In Var
$pagecontent = $docnew->saveHTML();
4

1 に答える 1

0

要素は、要素h6の直接の子ノードではない可能性があります:代わりにbody試してください$ppretitle->parentNode->removeChild($ppretitle)$trunctitl = $docnew->removeChild($ppretitle);

于 2013-11-15T08:48:52.987 に答える