【发布时间】:2009-02-26 13:17:44
【问题描述】:
我最近刚刚阅读了有关 PHP 中的 DOM 模块的信息,现在我正在尝试使用它来解析 HTML 文档。该页面说这是一个比使用 preg 更好的解决方案,但我很难弄清楚如何使用它。
该页面包含一个表格,其中包含日期和该日期的 X 个事件。
首先,我需要从具有 valign="bottom" 的 tr 中获取文本(日期),然后我需要从低于该 tr 的具有 valign="top" 的所有 tr 中获取所有列值。我需要 tr 下面的每个 tr 的所有列值,直到下一个 tr 的日期为 valign="bottom" (下一个日期)。列数据的tr个数未知,可以为零也可以很多。
页面上的 HTML 是这样的:
<table> <tr valign="bottom"> <td colspan="4">2009-02-26</td> </tr> <tr valign="top"> <td>21:00</td> <td>Column data</td> <td>Column data</td> <td>Column data</td> </tr> <tr valign="top"> <td>23:00</td> <td>Column data</td> <td>Column data</td> <td>Column data</td> </tr> <tr valign="bottom"> <td colspan="4">2009-02-27</td> </tr> <tr valign="top"> <td>06:00</td> <td>Column data</td> <td>Column data</td> <td>Column data</td> </tr> <tr valign="top"> <td>10:00</td> <td>Column data</td> <td>Column data</td> <td>Column data</td> </tr> <tr valign="top"> <td>13:00</td> <td>Column data</td> <td>Column data</td> <td>Column data</td> </tr> </table>
到目前为止,我已经能够获得前两个日期(我只对前两个感兴趣),但我不知道如何从这里开始。
我用来获取日期 trs 的 xpath 查询是
$result = $xpath->query('//tr[@valign="bottom"][position()<3]);
现在我需要一种方法将那天的所有事件与日期联系起来,即。选择直到下一个日期 tr 之前的所有 td 和所有列值。
【问题讨论】: