首页 >后端开发 >php教程 >如何在没有不需要的包装标签的情况下保存 DOMDocument HTML?

如何在没有不需要的包装标签的情况下保存 DOMDocument HTML?

DDD
DDD原创
2024-12-15 07:47:15789浏览

How to Save DOMDocument HTML Without Unwanted Wrapper Tags?

如何在没有 HTML 包装器的情况下保存 DOMDocument 的 HTML?

问题陈述:

下面的代码片段尝试保存没有 XML、HTML、body 和 p 标记包装器的 DOMDocument 的 HTML 内容,但它遇到了问题当内容包含块级元素时。

$postarray['post_content'] = $d->saveXML($d->getElementsByTagName('p')->item(0));

使用 loadHTML 选项修复:

要解决此问题,请使用带有以下选项的 loadHTML() 方法:

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

这些选项指示 Libxml 解析 HTML,而不添加隐含元素或默认元素doctype:

  • LIBXML_HTML_NOIMPLIED: 关闭自动添加隐含的 HTML/body 元素。
  • LIBXML_HTML_NODEFDTD: 防止默认文档类型没有时添加找到。

结果:

使用这些选项,saveHTML() 现在将输出 HTML 内容,而无需不必要的包装。

注意:

  • Libxml 2.6 LIBXML_HTML_NOIMPLIED 需要。
  • LIBXML_HTML_NODEFDTD 需要 Libxml 2.7.8。

以上是如何在没有不需要的包装标签的情况下保存 DOMDocument HTML?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn