PHP Simple Dom - 一次循环一个班级?

时间:2014-01-06 20:10:31

标签: php dom web-scraping simpledom

有没有办法做到这一点?目前我正在使用这种方法来浏览wikipedia条目中具有一类wikitable的每个表的td。

foreach ($html->find('table.wikitable td') as $key => $info)
{
    $text = $info->innertext;
}

但是,我想要做的是为每个共享类wikitable的表分配单独的循环。我无法弄清楚如何做到这一点。

有某种语法吗?我想做这样的事情

$first_table = $html->find('table.wikitable td', 0); // return all the td's for the first table
$second_table = $html->find('table.wikitable td', 1); // second one

1 个答案:

答案 0 :(得分:2)

我可能不完全理解你的问题,但似乎$html->find只返回一个数组,在你的情况下是一个表数组:

$tables = $html->find('table.wikitable');

然后,您可以遍历表格并在每个表格中找到td:

foreach( $tables as $table )
{
   $tds = $table->find('td');

   foreach( $tds as $td )
   {
      ...
   }
}

如果您只想定位第二张表,可以使用:

$table = $tables[1];

或类似的东西。