Ошибка PHP DOMDocument Сущность 'nbsp' не определена - PullRequest
12 голосов
/ 18 марта 2012

Я использую DOMDocument для редактирования некоторых файлов HTML, но некоторые темы имеют в своих пространствах имен. Поэтому DOMDocument автоматически изменяет пробелы на% 20, а затем не может их найти.

Вот так выглядит ошибка:

Warning: DOMDocument::load() [domdocument.load]: Entity 'nbsp' not defined in file:///C:/Path/To/The/File/01%20c%2040-1964.html, line: 11 in C:/Path/To/class.php on line 51

Вы знаете, как исправить эту ошибку?

Заранее спасибо за ответы

Ответы [ 2 ]

13 голосов
/ 18 марта 2012

Используйте DOMDocument::loadHTMLFile() вместо load().Вот для чего это было сделано.HTML не является XML.

XML не знает именованную сущность  .Однако если вы используете loadHTML, синтаксический анализатор XML загрузит именованные сущности HTML, поэтому ошибка исчезнет.

См. Также: Ошибка синтаксического анализатора XML: сущность не определена .

0 голосов
/ 10 апреля 2018
$textHTML = '<ul> <li>Dentro da ordem jurídica
brasileira.</li> </ul>

сохранить в XML-файле, например:

htmlspecialchars($textHTML, ENT_QUOTES);

восстановить файл следующим образом:

$doc->load(file.xml);
...