php - 解析html页面

时间:2010-09-12 22:33:25

标签: php html 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>

有人可以告诉我如何解析这个html页面只显示para1,para2和para3?并删除其他所有内容。

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

(第一个表总是有类“table”)

输出:

<p>para1</p>
<p>para2</p>
<p>para3</p>

1 个答案:

答案 0 :(得分: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;
}

gives

para1
para2
para3