0

我试图刮这个:

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

我很容易得到 pa1 ..但我想得到后面的两种字体..所以我用了这个:

$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);
}

两者都没有工作。如何使用简单的 html dom 获取下一个元素?

4

3 回答 3

2

中没有后代font标签#pa1

您显然正在寻找的是兄弟选择器+: #pa1 + font。但我不知道您正在使用的库是否支持它。

请阅读他们的文档:http ://simplehtmldom.sourceforge.net/manual.htm

于 2012-08-29T10:10:32.807 回答
2

就像feeela 说的,那些字体元素不是anchor 的后代。尝试这样的事情:

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 回答