@Shimpanze

PHP DomDocument: как перебрать все элементы внутри переменной?

Здравствуйте!

Как перебрать все элементы в переменной?

Пример:

$html = <<<'HTML'
<body>
  <main>
    <div>
      Lorem ipsum dolor sit amet consectetur adipisicing elit.
    </div>
    <p>
      Incidunt expedita laudantium aliquid unde explicabo.
    </p>
    <span>
      Velit eveniet alias minima vitae libero labore.
    </span>
  </main>
</body>
HTML;

$dom = new DOMDocument;
@$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DomXPath($dom);
$entry = $xpath->query('//main/node()');

$content = '';
foreach($entry as $element) {
  $content .= $dom->saveHTML($element);
}

/////////////////////////////////////////////////////////////////////////////////
// Как дальше искать внутри переменной «$content» (без xPath) ?
/////////////////////////////////////////////////////////////////////////////////

$subcontent = '';
foreach($content->getElementsByTagName('*') as $node) {
  $subcontent .= $dom->saveHTML($node);
}
echo $subcontent; // не работает


Песочница с примером

Спасибо!
  • Вопрос задан
  • 874 просмотра
Решения вопроса 1
DevMan
@DevMan
с чему коду работать то, если вы пытаетесь работать со строкой как с объектом?
да и ошибка говорит сама за себя.

$subcontent = '';
@$dom->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
foreach($dom->getElementsByTagName('*') as $node) {
	$subcontent .= $dom->saveHTML($node);
}
echo $subcontent;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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