Описание текущей ситуации:
У меня есть папка, полная страниц (pages-folder), каждая страница в этой папке имеет (среди прочего) div с id="short-info"
.
У меня есть код, который извлекает все <div id="short-info">...</div>
из этой папки и отображает текст внутри нее, используя textContent
(что для этой цели такое же, как nodeValue
)
Код, который загружает div:
<?php
$filename = glob("pages-folder/*.php");
sort($filename);
foreach ($filename as $filenamein) {
$doc = new DOMDocument();
$doc->loadHTMLFile($filenamein);
$xpath = new DOMXpath($doc);
$elements = $xpath->query("*//div[@id='short-info']");
foreach ($elements as $element) {
$nodes = $element->childNodes;
foreach ($nodes as $node) {
echo $node->textContent;
}
}
}
?>
Теперь проблема в том, что если у загружаемой страницы есть дочерний элемент, такой как изображение: <div id="short-info"> <img src="picture.jpg"> Hello world </div>
, то результатом будет только Hello world , а не изображение, а затем Hello world .
Вопрос:
Как заставить код отображать полный html внутри div id = "short-info", включая, например, это изображение, а не только текст?