@Bestolkovy

Как с помощью DOMDocument() перебрать все корневые HTML-элементы в переменной?

Доброе утро!

Есть переменная `$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 ???;
}


Большое спасибо!
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
DevMan
@DevMan
задача, имхо, бесмысленная, но получите и распишитесь.
ideone.com/yWghUP
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы