【问题标题】:Xml getText return null - AndroidXml getText 返回 null - Android
【发布时间】:2013-05-28 16:25:03
【问题描述】:

我在 Android 上使用 XmlPullParser,但 getText 返回 null。 为什么会这样?

代码,注释行给出null

    ArrayList<String> titleList = new ArrayList<String>();
    try {
        XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
        factory.setNamespaceAware(true);
        XmlPullParser xpp = factory.newPullParser();

        xpp.setInput(this.getInputStream(), null);
        int eventType = xpp.getEventType();

        while (eventType != XmlPullParser.END_DOCUMENT) {
            if (eventType == XmlPullParser.START_TAG) {
                if (xpp.getName().equalsIgnoreCase(TITLE)) {
//                  MainActivity.itemsList.add(xpp.getText());
                    Log.d("XGamers", "a");
                }
            }``
            eventType = xpp.next();
        }
    } catch (XmlPullParserException e) {
        Log.e("XGamers", "XmlPullParserException in FeedParser");
    } catch (IOException e) {
        Log.e("XGamers", "IOException in FeedParser");
    }

【问题讨论】:

  • 执行该行时 xpp.getName() 是否给出 null 或 NullPointerException?
  • 我把行改成getText,之前出错了..执行时出现NullPointerException

标签: android xml nullpointerexception gettext xmlpullparser


【解决方案1】:

试试这个:

if (xpp.getName().equalsIgnoreCase(TITLE)) {
  if(xpp.next() == XmlPullParser.TEXT) { 
       MainActivity.itemsList.add(xpp.getText());
       Log.d("XGamers", "a");
  }
}

另外,请确保您的 itemsList 已初始化。

【讨论】:

  • 哪一部分返回null? getName() 还是 getText()?在条件语句中也使用 &&。
  • 您可以改用xpp.nextText() 方法。为&lt;title&gt;text&lt;/title&gt; 点赞if (xpp.getName().equalsIgnoreCase(TITLE)) { text = xpp.nextText(); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 1970-01-01
  • 1970-01-01
  • 2012-06-22
  • 2012-05-28
  • 2014-12-05
相关资源
最近更新 更多