#html #xpath #element #domdocument
Вопрос:
Скажем, внутри StudentList.html получил эти данные
<div class="tableHeader">
<div class="header">
<div class="header-item">Name</div>
<div class="header-item">ID</div>
<div class="header-item">Email</div>
</div>
<div class="studentRow"></div>
Затем я выполняю:
$dom = new DomDocument('1.0', 'UTF-8');
$str = file_get_contents("StudentList.html");
if ($dom->loadHTML(mb_convert_encoding($str, 'HTML-ENTITIES', 'UTF-8')) == true) {
$xpath = new DomXPath($dom);
$nodeList = $xpath->query("//div[@class='tableHeader']");
$node = $nodeList->item(0);
echo "<p>" . $node->nodeValue . "</p>";
}
но вышеописанный метод заключается в том, чтобы получить значение только внутри, а не то, что я хочу…
Что я хочу, так это получить полный блок html-контента, когда этот блок класса соответствует.
поэтому он должен возвращать содержимое ниже, когда я выполняю эхо
<div class="tableHeader">
<div class="header">
<div class="header-item">Name</div>
<div class="header-item">ID</div>
<div class="header-item">Email</div>
</div>
как-нибудь?
Комментарии:
1. только что найден ответ, saveXML-это ключ к получению полного содержимого html, включая его самого
Ответ №1:
Решение для получения полного html, включая self
$xpath = new DomXPath($dom);
$div = $xpath->query("//div[@class='tableHeader']");
$div = $div->item(0);
$content= $dom->saveXML($div);
echo $content;