xml — есть ли способ дать PHP XMLReader команду * не * нормализовать возврат каретки в элементах

Я обрабатываю XML с помощью PHP XMLReader, и мне нужно сохранить символы пробела, включая возврат каретки в данных, которые я анализирую. Однако читатель заменяет возврат каретки символами новой строки. Есть ли способ научить его не делать этого?

0

Решение

XMLReader автоматически нормализуется \r\n\ в \n, Хотя вы хотите сохранить их, на самом деле это требуется спецификацией XML (2.11 Обработка конца строки).

Вы можете наверное обойти это путем последующей замены \n с \r\n,

str_replace("\n", "\r\n", $reader->value)

Для обработки пробелов XMLReader пропускает пустое пространство без изменений и отличается между WHITESPACE а также SIGNIFICANT_WHITESPACE узлы.

Вообщем как надо «сохранить символы пробела, включая возврат каретки в данных» XML не является правильной технологией для обработки и обработки ваших данных.

В зависимости от вашего варианта использования вы можете решить закодировать имеющиеся у вас двоичные данные таким образом, чтобы они были сохранены в XML, например, с base64_encode.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]