在Android应用程序中第一次调用nextTag()时出现XmlPullParserException

时间:2013-12-29 03:28:50

标签: java android xml xmlpullparser

我正在编写一个使用XmlPullParser解析XML Feed的Android应用程序。

这是我试图解析的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参数中的&字符更改为&,但除此之外我跟Android XML Parsing Tutorial密切关注可能的。

我理解为什么会抛出异常(找不到START_TAGEND_TAG),但我无法弄清楚为什么解析器位于END_DOCUMENT

1 个答案:

答案 0 :(得分:0)

这是罪魁祸首:

  

要让系统接受该网址,我将URL参数中的&字符更改为&

由于某种原因,系统没有接受没有更改的URL,但现在似乎没问题。