php - разобрать HTML-страницу - PullRequest
4 голосов
/ 13 сентября 2010
<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">.

(первая таблица будет всегда иметь класс "таблица")

выход:

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

1 Ответ

7 голосов
/ 13 сентября 2010
$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;
}

Это дает :

para1
para2
para3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...