XmlPullParserException при первом вызове nextTag() в приложении Android

Я пишу приложение для Android, которое анализирует XML-канал с помощью XmlPullParser.

Это XML, который я пытаюсь разобрать:

http://www.corvallistransit.com/rtt/public/utility/file.aspx?contenttype=SQLXML&Name=RoutePattern.rxml

Это код, где он взрывается:

public List parseRouteInfo(InputStream in) throws XmlPullParserException, IOException {
    try {
        XmlPullParser parser = Xml.newPullParser();
        parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
        parser.setInput(in, null);

        // This is the line
        parser.nextTag();

        parser.require(XmlPullParser.START_TAG, ns, "RoutePattern");
        return readPatterns(parser);
    } finally {
        in.close();
    }
}

И это исключение:

org.xmlpull.v1.XmlPullParserException: unexpected type (position:END_DOCUMENT null@1:1 in java.io.InputStreamReader@416d80a8) 

Чтобы система приняла URL-адрес, я изменяю символ & в параметре URL-адреса на &, но помимо этого я следую Руководство по синтаксическому анализу XML для Android как можно точнее.

Я понимаю, почему генерируется исключение (не найдено ни START_TAG, ни END_TAG), но я не могу понять, почему синтаксический анализатор находится на END_DOCUMENT.


person Phillip Carter    schedule 29.12.2013    source источник
comment
Вы уверены, что вам нужно изменить амперсанд? Похоже, что входной поток указывает на пустой документ.   -  person Ben    schedule 29.12.2013
comment
Кажется, в этом и была проблема. Я не уверен, почему он сначала не принимал URL-адрес, но эта конкретная проблема, связанная с END_DOCUMENT, больше не является проблемой.   -  person Phillip Carter    schedule 29.12.2013


Ответы (1)


Это был виновник:

Чтобы система приняла URL, я изменяю символ & в параметре URL на &

По какой-то причине система не принимала URL-адрес без этого изменения, но теперь, похоже, все в порядке.

person Phillip Carter    schedule 29.12.2013