2013-05-28 27 views
0

我嘗試創建我的第一個Rss閱讀器,但我遇到了問題。 我有一個類,其方法返回一個提要列表。Android rss(rss 2.0 and atom)解析錯誤:行xxx列xxx:格式不正確(無效令牌)

public ArrayList<FeedsItem> getFeedList() 
     { 
      final FeedsItem fi = new FeedsItem(Const.appDebugMode); 
      final ArrayList<FeedsItem> fl = new ArrayList<FeedsItem>(); 
      /** 
      * xml parse elements 
      */ 
      RootElement root = new RootElement("rss"); 
      Element channel = root.getChild("channel"); 
      Element item = channel.getChild("item"); 


      item.setEndElementListener(new EndElementListener() 
       {      
        @Override 
        public void end() 
         { 
          fl.add(fi.getCopy());        
         } 
       }); 

      item.getChild("title").setEndTextElementListener(new EndTextElementListener() 
       {      
        @Override 
        public void end(String body) 
         { 
         fi.setTitle(body);        
         } 
       });  

      item.getChild("link").setEndTextElementListener(new EndTextElementListener() 
       {      
        @Override 
        public void end(String body) 
         { 
          fi.setLink(body);       
         } 
       }); 

      item.getChild("description").setEndTextElementListener(new EndTextElementListener() 
       {      
        @Override 
        public void end(String body) 
         { 
          fi.setDescr(body);        
         } 
       }); 

      item.getChild("pubDate").setEndTextElementListener(new EndTextElementListener() 
       { 

        @Override 
        public void end(String body) 
         { 
          fi.setPubDate(body);         
         } 
       }); 

      item.getChild("guid").setEndTextElementListener(new EndTextElementListener() 
       {      
        @Override 
        public void end(String body) 
         { 
         fi.setGuid(body);       
         } 
       });    
      /**    
      * парсим feed    
      */ 
      try 
       { 
        Xml.parse(this.getInputStream(), Xml.Encoding.UTF_8, root.getContentHandler()); 
       } catch (Exception e) 
       { 
        new FeedsParserWriteLog(Const.appDebugMode) 
        .WriteLog("FeedsParcer getFeed (parse xml) err= \n"+e.getLocalizedMessage()); 
        throw new RuntimeException(e); 
       } 

      return fl; 
     } 

當我處理文件格式的RSS 2.0 - 一切正常(這樣的鏈接http://news.yandex.ru/software.rss) 當我處理文件格式原子(這樣的鏈接http://ithappens.ru/rss/)-我有一個問題錯誤:線XXX柱XXX:不合式(標記無效)

如何我可以處理這兩種格式?如何改寫處理2種格式的方法?

THX

+0

錯誤的字符集... – Selvin

+0

我該如何檢查字符集? – user2428604

回答

0

我遇到了同樣的問題,在我的情況是,我使用的是HttpURLConnection和響應是GZipped ..它似乎不解壓縮爲你所以你必須這樣做你自己。

Here你可以找出如何你需要。

我希望它有幫助!

相關問題