Php 如何在$node中获取html,而不仅仅是$nodeValue 对当前情况的说明:
我有一个满是页面的文件夹(pages文件夹),文件夹中的每一页都有一个div,其中包含Php 如何在$node中获取html,而不仅仅是$nodeValue 对当前情况的说明:,php,dom,glob,nodevalue,Php,Dom,Glob,Nodevalue,我有一个满是页面的文件夹(pages文件夹),文件夹中的每一页都有一个div,其中包含id=“short info” 我有一个代码,可以从该文件夹中提取所有…,并使用textContent(其目的与nodeValue相同) 加载div的代码: 您必须在节点上进行未记录的调用 $node->c14n()将为您提供$node中包含的HTML 疯狂吧?我在那件事上掉了一些头发 更新 这将修改html以符合严格的html。最好使用 $html=$Node->ownerDocument->saveHTM
id=“short info”
我有一个代码,可以从该文件夹中提取所有
…
,并使用textContent
(其目的与nodeValue
相同)
加载div的代码:
您必须在节点上进行未记录的调用
$node->c14n()
将为您提供$node
中包含的HTML
疯狂吧?我在那件事上掉了一些头发
更新
这将修改html以符合严格的html。最好使用
$html=$Node->ownerDocument->saveHTML($Node)代码>
相反。您需要的是“innerHTML”,PHP的dom不直接支持它。PHP文档中有一个解决方法
另一个选项是使用找到的$node
,将其作为新DOM文档的顶级元素插入,然后对该新文档调用saveHTML()
<?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;
}
}
}
?>