这是一个示例代码:
<div class="content">
<p>text 1</p>
<p>text 2</p>
<p>text 3</p>
<table border="1" cellpadding="0" cellspacing="0" dir="ltr">
<tbody>
<tr>
<td valign="top" width="205">
<p>td1</p>
</td>
<td valign="top" width="205">
<p>td2</p>
</td>
<td valign="top" width="205">
<p>td3</p>
</td>
</tr>
</tbody>
</table>
</div>
我想打印第一级p段
所以我试试这段代码:
foreach($html->find('div.content p') as $p)
{
echo $p->plaintext;
echo "<br/>";
}
我期待这些结果:
text 1
text 2
text 3
但我得到了这些:
text 1
text 2
text 3
td1
td2
td3
有没有办法忽略其他p标签?
答案 0 :(得分:2)
如果选择器与CSS中的选择器相同,则您要查找的选择器是
foreach($html->find('div.content > p') as $p) {
// ^^
...
}
使用此选择器可以找到直接孩子,您的.content p
可以找到p
中的所有.content
,而不仅仅是直接孩子。