php - php DOMDocument 允许输入 HTML 中的空属性?
问题描述
我正在尝试构建一些东西来解析自定义 HTML,类似于您可以在 Vue.js 或 React 中执行的操作。在那里你可以使用空属性,但 phps \DOMDocument 给我这样的标记错误:
<div><div foo></div></div>
PHP 警告:DOMDocument::loadXML():规范要求实体中属性 foo 的值,行:11
只需这样做即可重现问题:
$document = new \DOMDocument();
$document->loadXML($html);
我已经阅读了https://www.php.net/manual/en/domdocument.loadxml.php和https://www.php.net/manual/en/libxml.constants.php并尝试过LIBXML_NOWARNING
,但警告仍然存在不管什么原因出现。然后我试过LIBXML_NOERROR
了,但这根本没有输出。
我不是$document->loadHTML($html);
故意使用的,因为如果与未知标签一起使用,您最终会收到以下警告:
PHP 警告:DOMDocument::loadHTML():在实体中标记 mytag 无效。
我知道我可以抑制此警告,但我宁愿根本不抑制警告。可能还有其他警告,我认为抑制警告的编码风格不是很好,它们不应该发生,因为可能会有副作用。如果不介意切换到 loadHTML() 如果有另一种方法可以防止此警告。
那么有什么方法可以处理在使用 \DOMHtml 的标记中根本没有定义值的空值属性?
解决方案
推荐阅读
- pandas - 使用 group by - 根据 pandas 中另一列的条件创建一个新的列
- python - 在函数中创建的命名管的适当返回类型是什么
- react-native - How to fetch with axios after a post request in another view with react native?
- bash - Bash scripts & PLSQL Procedure
- java - FileUtils.listFiles 从列表中排除特定的文件扩展名
- php - 无法使用 PHP 的 SSH 命令创建 Active Directory 用户
- google-bigquery - Google BigQuery: Importing DATETIME fields using Avro format
- r - R: Loop to filter dataframe and print mean of column of filtered data into new dataframe
- python - Selenium locaing elements_by_xpath
- angular - Angular's TestBed overrideComponent not working