騰訊新聞解析失敗原因分析
阿新 • • 發佈:2019-01-24
如圖為騰訊新聞的xml檔案,地址:http://news.qq.com/newsgn/rss_newsgn.xml,原始碼如下:
解析方法如下:
while (type!=XmlPullParser.END_DOCUMENT){ switch (type){ case XmlPullParser.START_TAG: if ("item".equals(parser.getName())){ Log.i("TEST",parser.getName()); newsitem=new News(); }else if ("title".equals(parser.getName())){ Log.i("TEST",parser.getName()); newsitem.setTitle(parser.nextText()); }else if ("description".equals(parser.getName())){ Log.i("TEST",parser.getName()); newsitem.setDescription(parser.nextText()); } break; case XmlPullParser.END_TAG: if ("item".equals(parser.getName())){ news.add(newsitem); Log.i(TAG,"解析完成"); } } type=parser.next(); } } return news; }
錯誤原因:方法的解析順序為item->title->description,然而在原始碼中我們可以看到在第一個item出現的時候就已經出現了title和description了,所以解析會失敗。解決辦法有兩種(針對自己編寫的案例):
1、重新部署xml檔案,將第一個item前面的標籤取消掉
2、按照xml檔案的順序解析