Разбор SAX Android: как сохранить переводы строк внутри тега CDATA - PullRequest
4 голосов
/ 15 декабря 2010

У меня есть приложение для Android, которое использует парсеры SAX для извлечения данных из файла XML.Некоторые данные находятся в некоторых тегах CDATA и иногда содержат символы новой строки.Эти символы новой строки удаляются при разборе.Как мне их сохранить?

Кстати, я думал, что нашел ответ здесь , но размещение "" внутри тега CDATA приведет только к получению "", когда я его анализирую.

У кого-нибудь есть предложения?

Спасибо.

1 Ответ

2 голосов
/ 15 декабря 2010

Строки не удаляются парсером, будь то обычные символы или в разделе CDATA.Но в обоих случаях различные переводы строки (Unix, Windows, Mac) нормализуются в односимвольный канонический ("unix", \ n) перевод строки.Нет никакого способа предотвратить эту нормализацию, кроме как с помощью символьной сущности, как было предложено;и это нельзя сделать в разделе CDATA, потому что там отключена обработка сущностей.

Но почему именно вы хотите предотвратить эту нормализацию?Если вы хотите, чтобы это отображалось, вы можете просто заменить \ n на любой локальный перевод строки (\ r для mac или \ r \ n sequence для windows).

...