【发布时间】:2013-03-24 04:04:24
【问题描述】:
我正在尝试使用 PHP Simple HTML DOM Parser 来获取外部文件的 HTML。该文件包含一个表格,目标是找到具有特定数据内容的能够单元格,然后获取下一个同级单元格的数据。此数据需要放入 PHP 变量中。
基于在How to parse and process HTML/XML with PHP?、Grabbing the href attribute of an A element、Scraping Data: PHP Simple HTML DOM Parser 和当然PHP Simple HTML DOM Parser Manual 等文章中发现的研究和信息,我已经能够产生一些结果,但恐怕我可能在走错路了。
表格行如下所示:
<tr>
<td>fluff</td>
<td>irrelevant</td>
<td>etc</td>
<td><a href="one">Hello world</a></td>
<td>123.456</td>
<td>fluff</td>
<td>irrelevant</td>
<td>etc</td>
</tr>
我想要完成的是找到包含“Hello world”的表格单元格,然后从下一个 td 单元格中获取数字。以下代码找到该表格单元格并回显其内容,但我尝试将其用作地标以获取下一个单元格的数据失败了...
$html = file_get_html("http://site.com/stuff.htm");
$e = $html->find('td',0)->innertext = 'Hello world';
echo $e;
所以最终,在上面的示例中,值 123.456 需要以某种方式进入 PHP 变量。
感谢您的帮助!
【问题讨论】:
-
找到你的元素,然后使用 next_sibling() 获取它的“邻居”
-
@Marc:我能够找到元素的内部文本:
$e = $html->find('td',0)->innertext = 'Hello world';,但我不确定一旦找到该元素如何引用它。 -
find(td,0)返回该元素,然后您立即从中提取内部文本。如果是find(td,0)->next_sibling(),你会在你找到的那个之后得到td。
标签: php dom html-parsing