PHP Simple DOM Parser第一个孩子

时间:2014-12-31 17:35:42

标签: php parsing

这是一个示例代码:

<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标签?

1 个答案:

答案 0 :(得分:2)

如果选择器与CSS中的选择器相同,则您要查找的选择器是

foreach($html->find('div.content > p') as $p) {
    //                          ^^
    ...
}

使用此选择器可以找到直接孩子,您的.content p可以找到p中的所有.content,而不仅仅是直接孩子。