1

我想<tr>从第二个开始找到所有内容,但我不知道如何正确..

$items = $html->find('tr');

那段代码得到所有 trs 但我想要除了第一个之外的每个人,因为那个包含<th>.

4

5 回答 5

7

只需切断第一个元素。

$items = array_slice($html->find('tr'), 1)
于 2012-07-30T09:58:51.567 回答
1

如果 Simple html dom 像 Jquery 一样工作,请尝试像这样使用:

$items = $html->find('tr:not(:has(th)');
于 2012-07-30T10:11:03.757 回答
1

当您使用$html->find('tr');不关心第一个“索引/行”的循环来获取列表时。

于 2012-07-30T09:57:19.603 回答
0

您可以从 $html->find('tr'); 获取所有 trs;从此,您可以添加条件以忽略如果对象的下一个元素是“th”标签,那么您可以忽略该 tr。

于 2012-07-30T10:03:14.690 回答
0

正如 PoulsQ 建议的那样,您可以这样做

$firstTr = true;

foreach($html->find('tr') as $tr) {
  if(!$firstTr) {
    // YOUR LOGIC FOR A TR HERE
  }
  else {
    $firstTr = false;
  }
}

但我认为如果您查询 DOM 以忽略第一个元素,它会是更好的代码。

于 2012-07-30T10:04:04.127 回答