-1

ページのソース コードを利用するプログラムを作成していますが、場合によってはその一部を無視したいことがあります。最終的には、id ナビゲーションとそのすべてのコンテンツを持つタグを削除して、HTML を出力したいと考えています。

編集されたコード:

<?php
$lol = new DOMDocument();
$fh = fopen("test.txt", "r");

$lol->loadHTML(fread($fh, filesize("test.txt")));
$lol->saveHTML();

 $xpath = new DOMXpath($lol);
 $nodeList = $xpath->query('//navigation');
 foreach ($nodeList as $element) {
    $element->parentNode->removeChild($element);
 }

/*
foreach($divs AS $div) {
    if($div->getAttribute('id') == "navigation") {
        $lol->removeChild($div);
    }
}
*/


$out = $lol->saveHTML();

echo $out;
?>

オンラインで読んだことから、これが機能することを期待していましたが、機能しません。

任意の提案をいただければ幸いです。

test.txt は、ページのソース コードを含む単なるテキスト ファイルです。

4

1 に答える 1

2

コメントがあなたをそこに連れて行ったようです。XPath を少し調整する必要があるようです。idナビゲーションでタグを探している間、タグ$xpath->query('//navigation')を検索します:<navigation>

 $xpath = new DOMXpath($lol);
 $nodeList = $xpath->query("//*[@id='navigation']");
 foreach ($nodeList as $element) {
    $element->parentNode->removeChild($element);
 }

XPath は、こ​​の種のことに対して非常に強力です。このW3 チュートリアルは、さらに学習を始めるのに適した場所です。

(それがうまくいかない場合は、呼び出しをエコーし​​て、関連する HTML を投稿します)。

于 2012-07-04T23:52:40.573 に答える