Java XmlPullParser文本比较

Java XmlPullParser文本比较,java,android,xml,rss,xmlpullparser,Java,Android,Xml,Rss,Xmlpullparser,我正在开发一个Android应用程序,它从RSS提要获取XML并对其进行解析。有些条目是空的,所以我必须排除这些条目。问题是比较诸如result==“”或result.length()==0之类的东西不起作用。我尝试在结果的末尾附加一个.toString(),但它也不起作用。几个小时的谷歌搜索没有解决方案。有人知道我做错了什么吗?这一定是件愚蠢的事情,因为我对Android开发还很陌生 谢谢 XmlPullParserFactory factory = XmlPullParserFactory.

我正在开发一个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();
         }
XmlPullParserFactory工厂=XmlPullParserFactory.newInstance();
XmlPullParser=factory.newPullParser();
setInput(新的StringReader(XML));
int eventType=parser.getEventType();
新闻=新新闻();
字符串标记名=”;
newsList=newarraylist();
while(eventType!=XmlPullParser.END_文档){
if(eventType==XmlPullParser.START_标记){
if(parser.getName()包含(“项”)){
新闻=新新闻();
}
tagName=parser.getName();
}else if(eventType==XmlPullParser.END_标记){
if(parser.getName()包含(“项”)){
if(news.pubDate.length()>0){
新闻列表。添加(新闻);
Log.e(“标题”,新闻标题);
}
}
}else if(eventType==XmlPullParser.TEXT){
if(标记名.contains(“描述”)){
news.description=parser.getText();
}
else if(标记名.contains(“title”)){
news.title=parser.getText();
}
else if(标记名.contains(“链接”)){
news.link=parser.getText();
}
else if(标记名.contains(“pubDate”)){
news.pubDate=parser.getText();
}
}
eventType=parser.next();
}

解决方案是在我正在检查长度的字符串中添加一个trim()。显然,XmlPullParser通常只传递一次正确的值,然后再传递一个空值。因此,在处理之前检查值是否为空也很重要。

您可以发布完整的活动代码吗?基本上就是我发布的。另一个活动为这个活动提供了一个XML(我检查了它,它是有效的)。当我记录getText()值时,一切都正常,但由于某些原因,ifs不起作用:(