我试图从下表中抓取TBODY中的所有TR
<table id="a">
<thead>
<tr>empty</tr>
</thead>
<tbody>
<tr>
content I want is here
</tr>
</tbody>
</table>
使用此代码
$html->find('tbody tr');
但它不会忽视thead中的空tr。有没有人有解决方案?
答案 0 :(得分:2)
这确实是一种奇怪的行为......即使使用>
意味着直接的孩子,也行不通!
检查一下:
$input = <<<_DATA_
<table id="a">
<thead>
<tr>empty</tr>
</thead>
<tbody>
<tr>
content I want is here
</tr>
</tbody>
</table>
_DATA_;
//Create a DOM object
$html = new simple_html_dom();
// Load HTML from a string
$html->load($input);
foreach($html->find('tbody > tr') as $tr){
// The parent tag name
$parentTag = $tr->parent()->tag;
echo $parentTag . ' => ' . $tr->plaintext;
// Make sure the parent tag is 'tbody'
if( $parentTag == 'tbody' )
echo ' => OK';
echo '<br>';
}
<强>输出强>
thead => empty
tbody => content I want is here => OK
所以,一个workarround将测试父母是否等于上面所示的适当值