Вероятно, это и ошибка, и особенность.
XML 1.0 очень строгий относительно управляющих символов ASCII, которые он будет принимать.Похоже, что ваш DOMDocument пытается защитить вас от себя путем усечения (хотя он должен возвращать некоторые признаки проблемы, поэтому я бы назвал это ошибкой).
XML 1.1 менее ограничивающий;единственное, чего он не позволяет, это NUL.Итак, одно из возможных решений - настроить объект DOMDocument таким образом, чтобы он знал, что должен управлять 1.1.
Редактировать: он выглядит как , вы можете передать номер версии XML вКонструктор DOMDocument (но я не программист PHP, поэтому не знаю, правильно ли я читаю документы).
Редактировать 2: Я просто перечитал ваш вопрос и понял, что ваш синтаксический анализне строит.Если вы добавляете действительный пролог версии 1.1 к вводу, это должно быть обходным путем.Или, возможно, создав DOMDocument с правильным номером версии, он будет правильно анализироваться без этого пролога.