Итак, я пытаюсь проанализировать файл GPX, используя XmlPullParser. По большей части у меня это работает, но заметил, что я не получаю того, что ожидаю. Фрагмент файла:
<?xml version="1.0" encoding="utf-8"?>
<gpx xmlns="http://www.topografix.com/GPX/1/1">
<wpt lat="34.767778" lon="-88.078889">
<name>EG1325</name>
<type>Waypoint</type>
<extensions>
<groundspeak:cache>
<groundspeak:country>United States</groundspeak:country>
</groundspeak:cache>
</extensions>
</wpt>
</gpx>
Я обрезал здесь неважные теги для целей этого вопроса, предполагая, что файл проходит проверку со всеми представленными пространствами имен. (Потому что это делает полный файл.)
Проблема возникает, когда я прохожу мимо тега <type>
. Используя ЛИБО next()
или nextToken()
, я получу событие END_TAG для тега <type>
. Тогда моим следующим событием будет событие TEXT, текст будет содержать \n
. Событием после этого будет START_TAG, но для тега <groundspeak:cache>
и НЕ тег <extensions>
.
Кажется, я понимаю это как для использования вызовов nextToken()
, так и next()
. Ожидается ли это?
Изменить, чтобы добавить: единственный параметр, который я устанавливаю в коде для XmlPullParser:
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(false);