使用PHP Simple HTML DOM Parser解析html表

时间:2015-05-11 23:36:07

标签: php html-parsing simple-html-dom

我正在尝试从SEPTA列车(Pennsyvania Train)解析火车时刻表。到目前为止,我能够获得正确的表,但是当我尝试循环时 认为表值我总是得到一个空变量,无论我寻找什么:TD / TR / Text。

我要做的是从站名获取:预定时间,预计时间和到达时间。我试着搜索停止名称:'Malvern'并获得计划时间。

这就是我得到主表的方式:     

//// Retrieve the DOM from a given URL
$html = file_get_html('http://trainview.septa.org/550');
$table = $html->find('table#scheduletable');

foreach($table as $MainTable)
{ 
echo $MainTable;              
}   
?>

好的,现在我有了我的桌子。如果我尝试使用$ table执行任何ForEach,我会得到一个空白页面(可能是一些PHP异常)。

以下是我一直试图做的事情,但没有取得任何成功:

foreach($table->find('td') as $td) {
 If($td == "Malvern") } // Found my row?

foreach($table->find('Malvern') as $td) {
    }

foreach($table->find('td td') as $td) {
    }

// Can I do this to get the TD values?
$table->find('td',0)->innertext // Station
$table->find('td',1)->innertext // Scheduled Time
$table->find('td',2)->innertext // Estimated Time
$table->find('td',3)->innertext // Arrival Time

这是表的格式化方式(HTML):

    <table class="taglist" id="scheduletable">
  <tbody>
    <tr>
      <th bgcolor="#c1dcfa" colspan="6"> <h2>
        <div style="text-align: center;">Schedule for Train # 550 <br>
          May 11, 2015 </div>
      </h2></th>
    </tr>
    <tr valign="top" bgcolor="#aaeeee">
      <th width="25%">Station</th>
      <th width="5%"> </th>
      <th><center>
        Scheduled Time
      </center></th>
      <th><center>
        Estimated Time
      </center></th>
      <th><center>
        Arrival Time
      </center></th>
    </tr>
    <tr>
      <td>Thorndale</td>
      <td></td>
      <td>10:10 am</td>
      <td></td>
      <td>10:13 am</td>
    <tr>
      <td>Whitford</td>
      <td></td>
      <td>10:22 am</td>
      <td></td>
      <td>10:24 am</td>
    <tr>
      <td>Downingtown</td>
      <td></td>
      <td>10:17 am</td>
      <td></td>
      <td>12:00 am</td>
    <tr>
      <td>Exton</td>
      <td></td>
      <td>10:24 am</td>
      <td></td>
      <td>10:26 am</td>
    <tr>
      <td>Malvern</td>
      <td></td>
      <td>10:30 am</td>
      <td></td>
      <td>10:32 am</td>
    <tr>
      <td>Paoli</td>
      <td></td>
      <td>10:34 am</td>
      <td></td>
      <td>10:38 am</td>
      </tbody>
    </table>

非常感谢任何帮助。

我正在阅读所有HTML解析器主题,我仍然无法弄清楚我的问题是什么:(

0 个答案:

没有答案