0

ソース 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_rvar_dumpますxpath->query。 HTMLを取得し、不要なノードを削除してから保存します)print_rを使用すると、リンクテキストが表示されましたが、href=""の内容は表示されませんでした.

誰かが DOMDocument のわかりやすいガイドを勧めてくれませんか? PHP マニュアルは、実際の例が非常に短いようです。

4

0 に答える 0