PHP を使用して DOM ドキュメント ツリーを編集しようとしています。しかし、私は立ち往生しています。HTML を読み込んだ後、指定したいくつかの要素を除いて、すべての要素を削除したいと考えています。(<p>
および<b>
、たとえば) どうすればこれを行うことができますか? それは可能ですか?
以下は私の現在のコードです:
<?php
$url = 'http://en.wikipedia.org/w/index.php?title=Elephant&action=render';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$html = '<html>' . curl_exec($curl) . '</html>';
echo $html;
$document = new DOMDocument;
$document->loadHTML($html);
$allowed_elements = array(
'a',
'b',
'i',
'p',
);
$parent = $document->getElementsByTagName('html')->item(0);
foreach ($parent->getElementsByTagName('*') as $element)
{
$node = strtolower((string)$element->nodeName);
if (!in_array($node, $allowed_elements))
{
$element->parentNode->removeChild($element);
}
}
echo $document->saveHTML();
curl_close($curl);
?>
私の試行錯誤の結果、DOM ツリーをループできることがわかったので、単にループできると思います。しかし、私のコードはまだ機能していません! 私は最終的にプレーンテキストのウィキペディアの記事を取得しようとしています.誰かが私が自分で書く必要のない代替ツールを知っていれば、それは受け入れられる答えになるでしょう.
ありがとう!!:)