`

基于java的RSS在线订阅demo

    博客分类:
  • rss
阅读更多

/**  
     * 根据链接地址得到数据  
     * @param url RSS形式的xml文件  
     * @throws IllegalArgumentException  
     * @throws FeedException  
     */  
    public void parseXml(URL url) throws IllegalArgumentException, FeedException {      
 
        try {      
            SyndFeedInput input = new SyndFeedInput();      
            SyndFeed feed = null;      
            URLConnection conn;      
            conn = url.openConnection();      
            String content_encoding = conn.getHeaderField("Content-Encoding");      
               
            if (content_encoding != null && content_encoding.contains("gzip")) {      
                System.out.println("conent encoding is gzip");      
                GZIPInputStream gzin = new GZIPInputStream(conn      
                        .getInputStream());      
                feed = input.build(new XmlReader(gzin));      
            } else {      
                feed = input.build(new XmlReader(conn.getInputStream()));      
            }      
               
            List entries = feed.getEntries();//得到所有的标题<title></title>   
            for(int i=0; i < entries.size(); i++) {   
                SyndEntry entry = (SyndEntry)entries.get(i);   
                System.out.println(entry.getTitle());   
            }   
            System.out.println("feed size:" + feed.getEntries().size());      
           
        } catch (IOException e) {      
            e.printStackTrace();      
        }      
       
    }    
public void createXml() throws Exception {   
        /* 根据Channel源码提供的英文,Channel对象有两个构造器,一个默认的无参构造器用于clone对象,一个是有参的  
        * 我们自己指定的必须使用有参数的(因为我们需要许可证),指构造方法必须要创建一个type(版本),这个type不能随便写,必须要以rss_开头的版本号  
        * Licensed under the Apache License, Version 2.0 (the "License");  
        * 因为当前版本是2.0,所以就是rss_2.0,必须是rss_2.0否则会抛异常,该源码中写的已经很明白。  
        */  
       Channel channel = new Channel("rss_2.0");   
       channel.setTitle("channel标题");//网站标题   
        channel.setDescription("channel的描述");//网站描述   
        channel.setLink("www.shlll.net");//网站主页链接   
        channel.setEncoding("utf-8");//RSS文件编码   
        channel.setLanguage("zh-cn");//RSS使用的语言   
        channel.setTtl(5);//time to live的简写,在刷新前当前RSS在缓存中可以保存多长时间(分钟)   
        channel.setCopyright("版权声明");//版权声明   
        channel.setPubDate(new Date());//RSS发布时间   
        List<Item> items = new ArrayList<Item>();//这个list对应rss中的item列表             
        Item item = new Item();//新建Item对象,对应rss中的<item></item>   
       item.setAuthor("hxliu");//对应<item>中的<author></author>   
       item.setTitle("新闻标题");//对应<item>中的<title></title>   
       item.setGuid(new Guid());//GUID=Globally Unique Identifier 为当前新闻指定一个全球唯一标示,这个不是必须的   
        item.setPubDate(new Date());//这个<item>对应的发布时间   
        item.setComments("注释");//代表<item>节点中的<comments></comments>   
        //新建一个Description,它是Item的描述部分   
        Description description = new Description();   
       description.setValue("新闻主题");//<description>中的内容   
        item.setDescription(description);//添加到item节点中   
        items.add(item);//代表一个段落<item></item>,   
        channel.setItems(items);   
        //用WireFeedOutput对象输出rss文本   
        WireFeedOutput out = new WireFeedOutput();   
        try {   
            System.out.println(out.outputString(channel));   
        } catch (IllegalArgumentException e) {   
            e.printStackTrace();   
        } catch (FeedException e) {   
            e.printStackTrace();   
        }   
 
}

http://yueding920.blog.163.com/blog/static/352508902010521104722543/

 

分享到:
评论

相关推荐

    Rss 订阅 Demo

    RSS(Really Simple Syndication)订阅是一种在线内容发布和分发的方式,它允许用户通过RSS阅读器或聚合器获取...通过深入研究和实践这个Rss订阅Demo,你可以更好地掌握RSS订阅的工作机制,并将其应用到自己的项目中。

    Android Rss订阅源码Demo.zip

    - `Android Rss订阅源码Demo`:这是实际的源代码文件夹,包含项目的Java或Kotlin文件,以及必要的资源文件。 4. **源码分析**: - **RSS解析**:源码中应该有一个类负责处理RSS解析,可能包含`parseRssFeed()`...

    RSS DEMO 支持RSS定阅

    综上所述,这个"RSS DEMO"是一个基于J2EE平台、使用JSP实现的Web应用程序,旨在提供RSS订阅服务。用户可以使用它来关注多个RSS源,而无需逐个访问网站。通过解压"rssdemo"并导入到开发环境,开发者可以进一步研究其...

    Android源码——Rss订阅源码Demo.zip

    这个"Android源码——Rss订阅源码Demo.zip"是一个实例,它可以帮助开发者理解如何在Android应用中实现RSS订阅功能。接下来,我们将详细讨论RSS订阅的基本概念以及这个Demo中的关键知识点。 RSS,全称“Really ...

    Android代码-Rss订阅源码Demo.zip

    本示例"Rss订阅源码Demo.zip"提供了一个Android应用程序,演示了如何实现RSS订阅功能。下面我们将深入探讨这个话题,讲解其相关技术点。 1. **RSS基础知识**: - RSS是一种XML格式,用于发布经常更新的内容,如...

    安卓Android源码——Rss订阅源码Demo.zip

    这个“安卓Android源码——Rss订阅源码Demo.zip”是一个示例项目,它展示了如何在Android应用中实现RSS订阅功能。下面我们将深入探讨这个Demo中涉及的关键知识点。 首先,RSS(Really Simple Syndication)是一种...

    Android Rss订阅源码Demo.rar

    这个名为"Android Rss订阅源码Demo.rar"的压缩包文件提供了一个Android应用程序的源代码,主要用于学习如何在Android平台上实现RSS订阅功能。RSS(Really Simple Syndication)是一种内容发布格式,常用于博客、新闻...

    Android Rss订阅源码Demo.zip源码资源下载

    这个“Android Rss订阅源码Demo”是一个示例项目,它演示了如何在Android应用中实现RSS订阅功能。下面我们将详细探讨这个源码Demo中的关键知识点。 首先,我们需要了解RSS的基本概念。RSS是一种XML格式的文件,包含...

    Android Rss订阅源码Demo.zip项目安卓应用源码下载

    Android Rss订阅源码Demo.zip项目安卓应用源码下载Android Rss订阅源码Demo.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考

    Android rss阅读器demo

    在移动应用开发领域,RSS(Really Simple Syndication)阅读器是一种常见的工具,它允许用户订阅并获取来自不同网站的新闻、博客和其他在线内容。本项目是一个基于Android平台的RSS阅读器Demo,旨在帮助开发者理解和...

    rss阅读器.demo

    1. **信息汇聚**:RSS阅读器的核心功能是聚合来自不同来源的RSS订阅,将这些来源的最新内容汇集到一个统一的界面。这样,用户无需逐个访问各个网站,就能查看所有关注的新闻和更新。 2. **内容提取与分条显示**:...

    [其他类别]网站RSS订阅功能插件RSSMaker JSP版 v1.0_rssmaker_jsp.zip

    【标题】"网站RSS订阅功能插件RSSMaker JSP版 v1.0_rssmaker_jsp.zip"是一款基于Java JSP技术开发的RSS订阅工具,主要用于帮助网站提供RSS(Really Simple Syndication)订阅服务。RSS是一种简易信息聚合的格式,...

    仿新闻类demo

    4. **API接口**:可能与第三方新闻源(如RSS订阅)或社交媒体平台集成,通过API获取和分享新闻。 5. **实时性**:通过WebSocket或其他实时通信技术,实现新闻的即时推送,保持用户获取最新信息的能力。 6. **响应...

    Android 天气demo

    资讯阅读部分,开发者通常会接入新闻聚合平台,如RSS订阅或新闻API,如News API或Google News API。这样,应用可以定期更新并显示各类新闻标题,用户可以直接在应用内阅读感兴趣的内容。 五、分享功能 分享功能允许...

    SWATO

    例如,index.html通常是网站的主页,crud.html可能涉及CRUD(创建、读取、更新、删除)操作的演示,jst_demo.html可能包含JavaScript或jQuery的示例,而rss_reader.html可能是RSS订阅功能的实现。auto_suggest.html...

    observer-pattern-demo 观察者模式示例

    - 订阅发布系统,如RSS阅读器订阅新闻源。 - 多线程编程中的线程间通信。 通过这个"observer-pattern-demo",你可以看到如何在Java中使用观察者模式实现对象之间的动态绑定和解耦,使得系统更具扩展性和灵活性。...

    移动新闻网站,掌上移动新闻,移动新闻客户端,jQuery Mobile移动新闻网站,移动新闻网站demo,新闻阅读器开发

    这可能包括RSS阅读器,它可以解析RSS或Atom feed,展示来自多个网站的聚合内容。新闻阅读器的开发需要理解XML解析、数据存储(如SQLite数据库或云同步)以及用户界面设计,以提供无缝的阅读体验。 在实际项目中,...

Global site tag (gtag.js) - Google Analytics