Я пытаюсь создать что-то для анализа пользовательского HTML, аналогично тому, что вы можете сделать, например, в Vue.js или React.Там вы можете использовать пустые атрибуты, но phps \ DOMDocument выдает ошибку для разметки, например:
<div><div foo></div></div>
Предупреждение PHP: DOMDocument :: loadXML (): спецификация указывает значение атрибута foo в Entity, строка: 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 недействителен в Entity.
Я знаю, что могу подавить это предупреждение, но я бы предпочел вообще не подавлять предупреждения.Могут быть и другие предупреждения, и я не считаю хорошим стилем кодирования подавление предупреждений, они не должны появляться, потому что могут быть побочные эффекты.Если не возражаете переключиться на loadHTML (), если есть другой способ предотвратить это предупреждение.
Так есть ли способ, которым я могу иметь дело с пустыми атрибутами значения, у которых значение вообще не определено вразметка с использованием \ DOMHtml?