一尘不染

html5-tags上的PHP DOMDocument错误/警告

html

我一直在尝试解析HTML5代码,以便可以在代码内设置属性/值,但是DOMDocument(PHP5.3)似乎不支持诸如<nav>和的标记<section>

有什么方法可以在PHP中将其解析为HTML并处理代码?


复制代码:

<?php
$dom = new DOMDocument();
$dom->loadHTML("<!DOCTYPE HTML>
<html><head><title>test</title></head>
<body>
<nav>
  <ul>
    <li>first
    <li>second
  </ul>
</nav>
<section>
  ...
</section>
</body>
</html>");

错误

警告:DOMDocument :: loadHTML():在实体中的标签导航无效,第17行在/home/wbkrnl/public_html/new-
mvc/1.php中的第4行

警告:DOMDocument :: loadHTML():标记部分在实体中无效,第17行在/home/wbkrnl/public_html/new-
mvc/1.php中的第10行


阅读 242

收藏
2020-05-10

共1个答案

一尘不染

不,无法指定要使用的特定文档类型,也不能修改现有文档类型的要求。

最好的可行解决方案是使用禁用错误报告libxml_use_internal_errors

$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML('...');
libxml_clear_errors();
2020-05-10