DOMDocument игнорирует неизвестные объектыPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 DOMDocument игнорирует неизвестные объекты

Сообщение Anonymous »

Я пытаюсь реализовать подпись XML в своем ответе API, но у меня возникла проблема: я не могу превратить его в DOMDocument из-за наличия в нем «неизвестных» объектов XML (например, ä) и другие преобразованные символы HTML).
Я хочу, чтобы он вернул его как есть, но библиотека подписи требует, чтобы я конвертировал его в DOMDocument, но она выдает предупреждения об сущностях, а затем documentElement не установлен.
Вместо этого я мог бы проанализировать его как HTML, но это добавило дублирующий тег и теги даже с заданным флагом LIBXML_HTML_NOIMPLIED.
Я также мог бы передать LIBXML_DTDLOAD, который позволяет правильно его анализировать, но при этом мой файл объектов XML распечатывается непосредственно в ответ, который повысился длина возвращаемого значения превышается несколько раз.
Итак, есть ли способ просто заставить DOMDocument загружать мою строку XML без сбоя из-за неизвестных объектов или без касания строки XML или синтаксического анализа? DTD, не превращая его в отдельный XML?
В данный момент я делаю следующее, что не позволяет правильно его проанализировать.
// minified XML string
$output = '

%xhtml-all;
]>
ä';

$xml = new DOMDocument();

// Whitespaces must be preserved
$xml->preserveWhiteSpace = true;
$xml->formatOutput = false;
$xml->strictErrorChecking = false;

$xml->loadXML($output);

// Canonicalize the content, exclusive and without comments
if (!$xml->documentElement) { // this fails to have any content
throw new XmlSignerException('Undefined document element');
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... n-entities
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»