如何在不省略块级元素的情况下保存 DOMDocument 的 HTML
尝试将 DOMDocument 的内容保存为 HTML 时会出现此问题不包括默认的 HTML、body 和 p 标签包装器。建议使用 saveXML($d->getElementsByTagName('p')->item(0)) 的解决方案仅在内容缺少块级元素时起作用。
问题原始方法
如果存在块级元素,例如 h1 标签,则 saveXML 的输出为被截断,只留下 p 标签内的文本。
更新的方法
要解决此问题,您可以使用 PHP 中引入的 loadHTML 函数的更新版本5.4 和 Libxml 2.6。该函数包含一个 $options 参数,允许您指定如何解析内容。通过设置以下选项:
$html->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
解释选项
当您随后执行 saveHTML() 时,输出将不包含 doctype、html 标签或 body 标签。这种方法确保块级元素保留在输出中。
注意:
以上是如何在不丢失块级元素的情况下从 DOMDocument 保存 HTML?的详细内容。更多信息请关注PHP中文网其他相关文章!