2013-12-23 4 views
0

RSS 피드에서 XML을 가져 와서 구문 분석하는 Android 앱을 개발 중입니다. 일부 항목은 비어 있으므로 제외해야합니다. 문제는 result == ""또는 result.length() == 0 같은 것들을 비교하는 것이 효과가 없다는 것입니다. 결과의 끝에 .toString()을 추가하려고 시도했지만 작동하지 않습니다. 인터넷 검색의 시간과 해결책 없음. 아무도 내가 뭘 잘못하고 있는지 알아? 필자는 안드로이드 개발을 처음 접했을 때 어리석은 뭔가 일 것임에 틀림 없다.XmlPullParser 텍스트 비교

감사합니다.

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

기본적으로 내가 올린 내용입니다. 또 하나의 활동으로 XML을 제공한다 (나는 체크했고 유효하다). getText() 값을 로그 할 때 모든 것이 문제가되지 않지만 if가 작동하지 않는 이유는 무엇입니까? –

답변

0

해결 방법은 문자열에 trim()을 추가하여 길이를 확인하는 것입니다. 분명히 XmlPullParser는 종종 올바른 값을 한 번 전달한 다음 빈 값을 전달합니다. 따라서 처리하기 전에 값이 비어 있는지 확인하는 것도 중요합니다.