0

これを行う方法はありますか?現在、このメソッドを使用して、ウィキテーブルのクラスを持つウィキペディアのエントリ内のすべてのテーブルの 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
4

1 に答える 1

2

私はあなたの質問を完全には理解していないかもしれませんが$html->find、あなたの場合はテーブルの配列である配列を返すだけのようです:

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

次に、テーブルをループして、各テーブルで td を見つけることができます。

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

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

2 番目のテーブルのみをターゲットにする場合は、次を使用できます。

$table = $tables[1];

またはそのようなもの。

于 2014-01-06T20:17:37.483 に答える