Я обрабатываю XML с помощью PHP XMLReader, и мне нужно сохранить символы пробела, включая возврат каретки в данных, которые я анализирую. Однако читатель заменяет возврат каретки символами новой строки. Есть ли способ научить его не делать этого?
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
.
Других решений пока нет …