XmlPullParser для xml на sdcard не игнорирует пробелы - PullRequest
0 голосов
/ 20 января 2012

Я читаю тот же XML, используя XmlPullParser, либо из встроенного ресурса приложения, либо из SD.Проблема в том, что когда я читаю xml из ресурса, пробелы игнорируются, но для xml на sdcard не игнорируются.

Вот как я создаю PullParser для xml в ресурсе (дальнейший код извлечения является общим для обоих случаев)

XmlPullParser parser = context.getResources().getXml(resId);

И вот я создаю парсер для xml на sdcard

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();

FileReader fileReader = new FileReader(filePath);

parser.setInput(fileReader);

Ответы [ 2 ]

0 голосов
/ 20 января 2012

Я надеюсь, что это может помочь вам ::

http://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html#nextToken%28%29

0 голосов
/ 20 января 2012

Подсказка: XML ресурсы внутри вашего .apk компилируются в двоичный формат во время процесса сборки. Это также может обрезать «ненужные» пробелы. Чтобы избежать этой компиляции, вы можете поместить свой XML-ресурс в папку assets и прочитать оттуда ваш XML.

context.getResources().getXml(resId); тогда, конечно, больше не будет работать; Вашему активу не будет присвоен идентификатор ресурса. Вам придется использовать оригинальное имя файла.

Edit:

Документация для getXml () говорит:

Реализация XmlPullParser, возвращаемая здесь, имеет некоторые ограничения функциональность. В частности, вы не можете изменить его ввод, и только доступны события синтаксического анализа высокого уровня (поскольку документ предварительно проанализирован для вас во время сборки, что включает в себя слияние текста и зачистка комментариев).

...