ソース HTML の例:
<p>
<strong>Byline:</strong> Introductory text.
<a href="1.html" target="">Link 1</a> |
<span class="foo"></span>
<a href="2.html">Link 2</a>
<a href="3.html">Link 3</a>
</p>
私がやろうとしていること:
HTML を読み込んで、リンクやその他の不要なタグを取り除きたいのですが (それらが何であるかを指定する必要がある場合は問題ありません)、「|」など など、「バイライン」と「紹介テキスト」を保持します。これはサードパーティのサイトを解析するスクリプトなので、CSS クラスなどを追加することはできません。
私は最初に (現在はあまり広く使用されていません) PHP Simple HTML DOM Parserでこれを試みましたが、最近ではDOMDocumentを試しています。
しかし、私はまったくどこにも行きません-たとえば、今は下のツリーをたどることさえできません<p>
:
$doc = new DOMDocument();
$doc->loadHTML($somehtml);
$p = $doc->getElementsbyTagName('p');
foreach($p->childNodes as $item) {
...
}
上記により、行の「未定義のプロパティ: DOMNodeList::$childNodes」エラーが発生しますforeach
。
また: どうやら などを使用して DOM を視覚化できないこと、および を使用してリンクをループしたとき (特定のものを検索/抽出したくないので、ここでは不適切に思われます) にイライラしてprint_r
いvar_dump
ますxpath->query
。 HTMLを取得し、不要なノードを削除してから保存します)print_rを使用すると、リンクテキストが表示されましたが、href=""の内容は表示されませんでした.
誰かが DOMDocument のわかりやすいガイドを勧めてくれませんか? PHP マニュアルは、実際の例が非常に短いようです。