0

我正在尝试创建我的第一个 Rss 阅读器,但我遇到了问题。我有一个类,其方法返回一个提要列表。

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 种格式的方法?

谢谢

4

1 回答 1

0

我遇到了和你一样的问题,我的问题是我正在使用HttpURLConnection并且响应是GZipped .. 似乎urlConnection没有为你解压缩,所以你必须自己做。

如果需要,您可以在此处了解如何操作。

我希望它有帮助!

于 2015-01-11T09:29:42.757 回答