php simple html dom, разбираем html между 2 html тэгами по id - PullRequest
0 голосов
/ 03 ноября 2011

У меня большое дерево, и я попытался разобрать html между 2 html тэгами по id (между h2 # ftc до h2 # ftd), используя простой html dom, как это сделать правильно?мой код получить пустые данные.Благодарю.

require ("simple_html_dom.php");
$result=<<<EOT
<ul>
    <h2 id="fta">tree1</h2>
        <li>nod a</li>
        <li>nod b</li>
        <li>nod c</li>
    <h2 id="ftb">tree2</h2>
        <li>nod d</li>
        <li>nod e</li>
        <li>nod f</li>
    <h2 id="ftc">tree3</h2>
        <li>nod g</li>
        <li>nod h</li>
    <h2 id="ftd">tree4</h2>
        <li>nod i</li>
        <li>nod j</li>
        <li>nod k</li>
        <li>nod l</li>
</ul>
EOT;

$html = str_get_html($result);

foreach($html->find("ul") as $st) {
    if($st->find("h2[id=ftc]")){continue;}
    echo $st;
    if($st->find("h2[id=ftd]")){break;}
}

И я хочу только вывод:

<h2 id="ftc">tree3</h2>
<li>nod g</li>
<li>nod h</li>

1 Ответ

0 голосов
/ 03 ноября 2011

Было бы гораздо лучше использовать классы DOM, поставляемые с PHP, вместо того, чтобы пытаться развернуть свое собственное решение.

$doc = new DOMDocument ();
$doc -> load ($result);
if ($list = $dom -> getElementById ('fta'))
{
    // Do your processing in here
}
...