我正在开发一个Android应用程序,它从RSS提要中提取XML并解析它。有些条目是空的,所以我必须排除这些条目。问题是比较像result ==“”或result.length()== 0这样的东西是行不通的。我尝试将.toString()附加到结果的末尾,但它也不起作用。谷歌搜索的时间,没有解决方案。有谁知道我做错了什么?它一定是愚蠢的,因为我对Android开发还很陌生。
谢谢!
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
parser.setInput(new StringReader(XML));
int eventType = parser.getEventType();
News news = new News();
String tagName = "";
newsList = new ArrayList<News>();
while (eventType != XmlPullParser.END_DOCUMENT){
if(eventType == XmlPullParser.START_TAG) {
if(parser.getName().contains("item")){
news = new News();
}
tagName = parser.getName();
} else if(eventType == XmlPullParser.END_TAG) {
if(parser.getName().contains("item")){
if(news.pubDate.length() > 0){
newsList.add(news);
Log.e("TITLE", news.title);
}
}
} else if(eventType == XmlPullParser.TEXT) {
if(tagName.contains("description")){
news.description = parser.getText();
}
else if(tagName.contains("title")){
news.title = parser.getText();
}
else if(tagName.contains("link")){
news.link = parser.getText();
}
else if(tagName.contains("pubDate")){
news.pubDate = parser.getText();
}
}
eventType = parser.next();
}
答案 0 :(得分:0)
解决方法是在字符串中添加一个trim()来检查长度。显然,XmlPullParser通常会传递一次正确的值,然后传递一个空值。因此,在处理之前检查值是否为空也很重要。