Ходить по html-поиску блоков первого уровня - PullRequest
0 голосов
/ 21 сентября 2009

В дополнение к моему другому вопросу об анализе html и поиске <p> and <ul>/<ol> помечает этот вопрос.

$in = '<p>Bit\'s of text</p><p>another paragraph</p><ol><li>item1</li><li>item2</li></ol><p>paragraph</p>';

function geefParagrafen($in){
  $dom = new domDocument;
  $dom->loadHTML($in);
  $x = $dom->documentElement;
}

вот как далеко я дошел. Как можно получить $ out в виде массива, содержащего следующее:

$out = array('<p>Bit's of text</p><p>another paragraph</p>',
'<p>another paragraph</p>',
'<ol><li>item1</li><li>item2</li></ol>',
'<p>paragraph</p>');

Заранее спасибо! Я действительно потерялся в структуре документов.

1 Ответ

2 голосов
/ 21 сентября 2009
$in = '<p>Bit\'s of text</p><p>another paragraph</p><ol><li>item1</li><li>item2</li></ol><p>paragraph</p>';


$dom = new domDocument;
$dom->loadHTML($in);

$children = $dom->getElementsByTagName('body')->item(0)->childNodes;

$out = array();

foreach ($children as $child) {
    $out[] = $dom->saveXML($child);
}

print_r($out);
...