简单 html dom - 在查找中查找

simple html dom - find within a find

我在 simple_html_dom 方面需要一些帮助。

我正在尝试解析包含许多 table 行的数据 table。在一些 td 单元格中,还有一些 div 标签需要单独解析。

    foreach($html->find('tr.statistics') as $data) {
    $cell_one = $data->find('td', 0)->plaintext;
    $cell_two = $data->find('td', 1)->plaintext;
    $cell_three = $data->find('td', 2)->innertext
    }

这可以正常工作,但我还需要在 $cell_three 中找到两个 div 标签。

$cell_three 数据如下所示

<div id="_Div_Line85">65</div><div id="_Div_Line95">56</div> 

所以我的问题是,我将如何获取这两个 div 标签中的内容?

您需要使用链接。

$sub_1 = $data->find('td', 2)->find('td',1)->plaintext;
$sub_2 = $data->find('td', 2)->find('td',2)->plaintext;

下面的代码会将每个div转换成一个数组,然后去掉HTML代码。

$cell_three = $data->find('td', 2)->innertext;
$cell_three = explode("</div>", $cell_three);
$cell_three = array_map(function($v){
    return trim(strip_tags($v));
}, $cell_three);

然后你只需遍历数组即可。

foreach($cell_three as $sub_cell){
    $sub_cell_one = $sub_cell->find('td', 1)->plaintext;
    $sub_cell_two = $sub_cell->find('td', 2)->plaintext;
}