Доброе утро!
Есть переменная `$content` со следующим содержимым:
$content = <<<EOD
<div id="foo">
<p>...</p>
</div>
<pre class="bar">
<code>
echo "Hello, World!";
</code>
</pre>
<p id="third">Hello.</p>
Текстовый узел.
<table id="fourth">
<tbody>
Content
</tbody>
</table>
Ещё один текстовый узел.
EOD;
Необходимо получить все корневые элементы (вместе с их содержимым), включая текстовые, в массив, чтобы затем их по очереди обработать.
Примерно так:
array(
<div id="foo">Всё содержимое элемента</div>,
<pre class="bar">Всё содержимое элемента</pre>,
<p id="third">Всё содержимое элемента</p>,
Текстовый узел,
<table id="fourth">Всё содержимое элемента</table>,
Ещё один текстовый узел.,
и т. д.
);
Примерный код:
$dom = new DOMDocument( '1.0', 'UTF-8' );
$dom->loadHTML( $content );
$xpath = new DOMXPath( $dom );
$tags = $xpath->query('/html/body/*');
foreach ( $tags as $node ) {
echo ???;
}
Большое спасибо!