2013-06-02 62 views
7

我在Android上使用XmlPullParser,但getText返回null。 這是怎麼回事?Xml getText返回null - Android

的代碼中,註釋行給出了空

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"); 
    } 
+0

xpp.getName()是否爲null或者執行該行時是否存在NullPointerException? – Ryan

+0

我將行更改爲getText,之前是錯誤的.. NullPointerException何時執行 – Clepto

回答

8

試試這個:

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

此外,請確保您的itemsList被初始化。

+1

謝謝!這工作! – Clepto

+0

我在第5行得到了同樣的結果,http://pastebin.com/2F5CqxRK 爲什麼? – Clepto

+0

它的哪個部分返回null? getName()或getText()?在條件語句中也使用&&。 – Ryan