我试图使用nodeValue在文件中获取div标签的innerhtml,但是这段代码只输出纯文本,似乎从div中删除所有html标签 . 如何更改此代码以输出div的HTML内容而不是纯文本,并且还输出包含其子元素的主div .
例:
file.txt的内容:
<div class="1"><span class="test">text text text</span></div>
<div class="2"><span class="test">text text text</span></div>
<div class="3"><span class="test">text text text</span></div>
script.php的:
$file= file_get_contents('file.txt');
$doc = new DOMDocument();
@$doc->loadHTML('<?xml encoding="UTF-8">'.$file);
$entries = $doc->getElementsByTagName('div');
for ($i=0;$i<$entries->length;$i++) {
$entry = $entries->item($i);
echo $entry->nodeValue;
}
输出:文本文本文本文本文本文本文本文本
我需要它输出:
<div class="1"><span class="test">text text text</span></div>
<div class="2"><span class="test">text text text</span></div>
<div class="3"><span class="test">text text text</span></div>
请注意,需要输出父div(..etc)以及包装span标签...
救命!
2 回答
我从来没有做过你想要做的事情,但是在黑暗中,使用API文档,确实是echo $ entry-> textContent;工作?
添加更新 . 这是来自DOMNode的文档页面上的评论:
嗨!
结合所有注释,获取节点内部HTML的最简单方法是使用此函数:
或者,也许更简单的方法是:
代替:
你必须使用:
这是一个可能对其他人有帮助的更完整的示例,
$doccontent
是HTML块作为字符串: