XmlPullParser文本比较

时间:2013-12-23 00:13:23

标签: java android xml rss xmlpullparser

我正在开发一个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();
         }

1 个答案:

答案 0 :(得分:0)

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