我有一个html内容,如下所示:
<table>
<tbody>
<tr>
<td>blabla</td>
<td>blabla</td>
</tr>
<tr>
<td>blabla</td>
<td>blabla</td>
</tr>
<tr>
<td>blabla</td>
<td><table>THIS IS MY TABLE CONTENT</table></td>
</tr>
</tbody>
</table>
我想解析这是我的桌子内容而且只有这张桌子,外表对我来说无关紧要。 我正在使用Simple HTML DOM解析器,现在我的代码看起来像这样:
$table = $html->find('table');
foreach ($table->find('table') as $tbl){
foreach ($tbl->find('tr') as $tr){
foreach ($tr->find('td') as $td){
// some logic
}
}
}
我的问题是,这样我就没有得到任何结果。如何以正确的方式执行此解析?
非常感谢您的帮助!
答案 0 :(得分:0)
如何在XPath
$str = '<table><tbody><tr><td>blabla</td><td>blabla</td></tr><tr><td>blabla</td><td>blabla</td></tr><tr><td>blabla</td><td><table>THIS IS MY TABLE CONTENT</table></td></tr></tbody></table>';
$dom = new DOMDocument();
$dom->loadHTML($str); // $str is your html string
$xpath = new DOMXPath($dom);
$tables = $xpath->query('.//td/table'); // fetch all tables inside td
foreach($tables as $table){
// Do your stuff with each table
echo $table->nodeValue; // $table is your current $table
}
答案 1 :(得分:0)
内表是:
$html->find('table table', 0);