php - 解析html页面

4 html php parsing

<div>divbox</div>
<p>para1</p>
<p>para2</p>
<p>para3</p>
<table class="table"><tr><td></td></tr></table>
<p>para4</p>
<p>para5</p>
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何解析这个HTML页面只显示para1,para2和para3?并删除其他一切.

condition:
我想从第一个到第一个获取所有内容.<p><table class="table">

(第一个表将始终具有类"表")

输出:

<p>para1</p>
<p>para2</p>
<p>para3</p>
Run Code Online (Sandbox Code Playgroud)

Art*_*cto 7

$d = new domdocument();
libxml_use_internal_errors(true);
$d->loadHTML($file);

foreach ($d->getElementsByTagName("*") as $el) {
    if ($el->tagName == "p")
        echo $el->textContent, "\n";
    elseif ($el->tagName == "table")
        break;
}
Run Code Online (Sandbox Code Playgroud)

给出了:

para1
para2
para3