【问题标题】:XmlPullParser not reach end of documentXmlPullParser 未到达文档末尾
【发布时间】:2023-03-05 14:18:01
【问题描述】:

我正在开发一个简单的 Android 应用程序,它应该获取 RSS 提要、读取并在屏幕上显示信息。我在实现代码时尝试遵循 Google 示例(来源:Android Developers)。

我的代码是这样的:

  public void fetchXML(String url, Context context) {
    try {
        URL urlObj = new URL(url);
        this.parser = this.xmlPullParserFactory.newPullParser();
        InputStream stream = getInputStream(urlObj);
        String string = this.extractStringFromInputStream(stream);
        this.parser.setInput(new StringReader(string));

        int eventType = parser.getEventType();

        while (eventType != XmlPullParser.END_DOCUMENT) {
            Log.i(TAG, "value END_DOCUMENT: " + XmlPullParser.END_DOCUMENT + " - my eventType value: " + eventType);
            if (parser.getEventType() != XmlPullParser.START_TAG) {
                continue;
            }
            String name = parser.getName();

            if (name.equals("title")) {
                title = readTitle(parser);
            }

            if (parser.getEventType() and!= XmlPullParser.END_TAG) {
                Log.i(TAG, "IM IN END TAG");
            }

            eventType = parser.next();
    }

    } catch (Exception e) {
        Log.e(TAG, "EXCEPTION: ", e);
    }
}

实际上,它会打印出标题 XML-Tag 的内容,但它不会停止 while 循环。 eventType 的值始终为 0。它也永远不会进入 XmlPullParser.END_TAG。

有人知道我的代码有什么问题吗?

【问题讨论】:

    标签: android rss infinite-loop xmlpullparser


    【解决方案1】:

    我自己发现了问题。 它只是“继续”部分。当我删除它时,它起作用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-22
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      相关资源
      最近更新 更多