删除文档类型,同时保存 domdocument

2022-08-30 22:38:15

我正在解析并将html文档提取到DOMDocument。这些文档是将显示在另一个页面中的子表单。在保存解析的 DOMDocuments 时,它会自动添加 doctype、html、head 和 body 标签。由于我正在研究子表单,因此我想删除所有这些内容,只保存表单的子标签。

如何在保存 domdocument 的同时跳过 html、head、body 和其他标签的自动生成?


答案 1

与@KoolKabin答案相同,但更短一些:

return preg_replace('~<(?:!DOCTYPE|/?(?:html|body))[^>]*>\s*~i', '', $dom->saveHTML());

答案 2

从 PHP 5.4 和 Libxml 2.6 开始,目前有更简单的方法:当你加载 html 时

$html->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); 

在输出中,不会有文档类型,html或正文标签。


推荐