0

私はこれをこすり取ろうとしています:

<a id="pa1">Site1</a>
<font size="-1">Text1</font><br />
<font size="-1" color="green">Text2</font><br />

私はpa1に簡単にアクセスできますが、その後に続く2つのフォントにアクセスしたいので、これを使用しました。

$html = new simple_html_dom();
$html->load($document);

foreach ($html->find('#pa1>font') as $e) {
    $this->check_line_two = $this->process_array_elements($e->innertext);
}

foreach ($html->find('#pa1>font>font') as $e) {
    $this->check_line_three = $this->process_array_elements($e->innertext);
}

両方とも機能しませんでした。単純なhtmldomで次の要素を取得するにはどうすればよいですか?

4

3 に答える 3

2

font内に子孫タグはありません#pa1

あなたが明らかに探しているのは兄弟セレクター+です:#pa1 + font。しかし、それがあなたが使用しているライブラリによってサポートされているかどうかはわかりません。

彼らのドキュメントを読んでください:http ://simplehtmldom.sourceforge.net/manual.htm

于 2012-08-29T10:10:32.807 に答える
2

Feeelaが言ったように、これらのフォント要素はアンカーの子孫ではありません。次のようなものを試してください。

foreach ($html->find('#pa1') as $e) {
    $firstFontElement = $e->next_sibling();
}
于 2012-08-29T10:16:07.173 に答える
0

スクラップしようとしているのがそれだけの場合は、フォントタグを選択してみませんか。

foreach ($html->find('font') as $e) {
    $this->check_line_two = $this->process_array_elements($e->innertext);
}

または、ドキュメントにさらに多くのフォントタグが存在する可能性はありますか?

于 2012-08-29T10:30:18.607 に答える