`
benbenming
  • 浏览: 112283 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

开发RSS聚合的开源框架

阅读更多

最近公司要开发一个基与java的RSS阅读器,但是时间紧,在网上找个了一个开源的框架Rome,Rome并不是指罗马。不要误会,这里介绍的rome为一个开源java框架,可以在www.java.net上找到它,它是为RSS聚合而开发的一个框架,让你可以快速的开发基于javaRSS阅读,发布器,支持

  • RSS 0.91 Netscape
  • RSS 0.91 Userland
  • RSS 0.92
  • RSS 0.93
  • RSS 0.94
  • RSS 1.0
  • RSS 2.0
  • Atom 0.3
  • Atom 1.0

  等标准。你也可以自己扩展他的Module,让他解析你自己定义的XML格式。可以说它是一种用途很广的框架,在使用它之前。你必须下载JDOM开发包,因为它是用JDOM解析XML的。

Rome中主要包裹下面几个包

com.sun.syndication.feed

com.sun.syndication.feed.atom

与获得atom中各个节点的数据

com.sun.syndication.feed.module

modeule为各个数据模型层。可以自己扩展

com.sun.syndication.feed.rss

用与获得RSS中各个相对应的XML节点中的值

com.sun.syndication.feed.sse
com.sun.syndication.feed.synd

此包为写成RSS格式的XML设置个节点的属性
com.sun.syndication.io

此包为输入输出流。

它的UML

 

                                   1

下面是一个例子,功能是生成RSS格式的XML

public class FeedWriter {

    private static final String DATE_FORMAT = "yyyy-MM-dd";

    public static void main(String[] args) {
        boolean ok = false;
        if (args.length==2) {
            try {
                String feedType = args[0];
                String fileName = args[1];

                DateFormat dateParser = new SimpleDateFormat(DATE_FORMAT);

                SyndFeed feed = new SyndFeedImpl();  //feed流
                feed.setFeedType(feedType);                   //设置rss版本

                feed.setTitle("Sample Feed (created with Rome)");  //<title>设置标题
                feed.setLink(http://www.csdn.net);                               //<link>
                feed.setDescription("This feed has been created using Rome (Java syndication utilities");

                List entries = new ArrayList();
                SyndEntry entry;
                SyndContent description;

                entry = new SyndEntryImpl();                                 //子节点
                entry.setTitle("Rome v1.0");
                entry.setLink(http://www.csdn.net);
                entry.setPublishedDate(dateParser.parse("2004-06-08"));
                description = new SyndContentImpl();
                description.setType("text/plain");
                description.setValue("Initial release of Rome");
                entry.setDescription(description);
                entries.add(entry);

                entry = new SyndEntryImpl();
                entry.setTitle("Rome v2.0");
                entry.setLink(http://ww.csdn.net);
                entry.setPublishedDate(dateParser.parse("2004-06-16"));
                description = new SyndContentImpl();            //描述
                description.setType("text/xml");
                description.setValue("Bug fixes, <xml>XML</xml> minor API changes and some new features");
                entry.setDescription(description);
                entries.add(entry);

                entry = new SyndEntryImpl();
                entry.setTitle("Rome v3.0");
                entry.setLink("http://www.csdn.net");
                entry.setPublishedDate(dateParser.parse("2004-07-27"));
                description = new SyndContentImpl();
                description.setType("text/html");
                description.setValue("<p>More Bug fixes, mor API changes, some new features and some Unit testing</p>"+
                                     "<p>For details check the <a href=\"http://www.csdn.net\">Changes Log</a></p>");
                entry.setDescription(description);
                entries.add(entry);

                feed.setEntries(entries);                             //设置子节点

                Writer writer = new FileWriter(fileName);
                SyndFeedOutput output = new SyndFeedOutput();
                output.output(feed,writer);                        //写到文件中去
              
                writer.close();

                System.out.println("The feed has been written to the file ["+fileName+"]");

                ok = true;
            }
            catch (Exception ex) {
                ex.printStackTrace();
                System.out.println("ERROR: "+ex.getMessage());
            }
        }

        if (!ok) {
            System.out.println();
            System.out.println("FeedWriter creates a RSS/Atom feed and writes it to a file.");
            System.out.println("The first parameter must be the syndication format for the feed");
            System.out.println("  (rss_0.90, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0 rss_2.0 or atom_0.3)");
            System.out.println("The second parameter must be the file name for the feed");
            System.out.println();
        }
    }

}
     就这么多了。第一次写blog写的不好。大家不要砸砖头:)

分享到:
评论

相关推荐

    RSS开源框架ROME1.0下载集合

    在开发过程中,为了简化RSS处理,出现了各种开源框架,其中ROME(Really Simple Syndication)是一个流行的Java库。 **ROME框架** ROME1.0是该框架的一个版本,它提供了对RSS和Atom feeds的全面支持。通过使用ROME...

    RSS聚合系统Gregarius修改版

    RSS聚合系统Gregarius是一款基于PHP开发的开源软件,专门用于收集、管理和展示来自不同来源的RSS(Really Simple Syndication)和Atom feeds。RSS是一种在线内容发布的标准格式,它允许用户在一个地方集中查看多个...

    Gregarius RSS聚合程序.7z

    【描述分析】:描述中提到的“Gregarius RSS聚合程序.7z”暗示这是一个开源软件项目,可能包含了源代码、文档和其他相关资源。由于文件以.7z格式压缩,它可能使用7-Zip工具进行压缩,以提供更高的压缩比和更好的文件...

    ASP.NET源码——新闻屋免费RSS聚合程序.zip

    在ASP.NET中,开发RSS聚合程序涉及以下关键技术点: 1. **HTTP请求与响应处理**:ASP.NET Web Forms或MVC框架允许开发者处理HTTP请求,获取RSS源的数据。使用HttpWebRequest或HttpClient类发送GET请求到RSS feed ...

    .net开源的综合开发框架wojilu框架.zip

    除了直接发布,也可以聚合论坛、博客、微博等其他数据源(包括外站的RSS);支持资讯投递、审核;支持模板修改,支持 Json 数据的自定义绑定;支持回收站、支持缓存、支持换肤;支持超长文章分页等其他功能;平台化...

    免费RSS聚合程序_dotnet整站程序.rar

    标题中的“免费RSS聚合程序_dotnet整站程序.rar”表明这是一个基于.NET技术开发的RSS聚合程序,用于收集、整理和展示来自多个来源的RSS feed。RSS(Really Simple Syndication)是一种内容发布格式,允许用户订阅并...

    Laravel开发-laravel-rss

    RSS是一种XML格式,允许用户订阅网站内容,以便在支持RSS的阅读器或聚合器中获取最新更新。 在Laravel 5中,开发laravel-rss库是为了简化RSS feed的生成过程。这个库可能包含了以下关键知识点: 1. **Laravel基础...

    Rss.rar_flex_rss开发

    综上所述,"Rss.rar_flex_rss开发"项目涵盖了RSS聚合原理、Flex编程、XML解析、数据绑定、用户界面设计等多个IT知识点。通过这个项目,开发者不仅可以学习到RSS阅读器的实现细节,还能深入理解Flex框架在构建RIA中的...

    EaglePHP 开源框架 v 1.8 发布

    EaglePHP,是一款开源、高效、面向对象的PHP MVC开发框架,完全基于PHP5可用于开发WEB程序和服务,借鉴国外优秀框架的设计思路,分层的设计思想使独立开发成为可能,建立模型推动代码的重用,有助于促进快速软件开发...

    Laravel开发-laravel-rss-feed

    在Laravel框架中,开发RSS Feed功能可以使得网站内容更易于被其他平台抓取和订阅。"laravel-rss-feed"是一个针对Laravel 5设计的简单包装器,它利用了开源库SimplePie来处理RSS源的获取、解析和展示。SimplePie是一...

    RSS订阅器(JAVA)

    2. **Spring MVC框架**:Spring是Java企业级应用开发的开源框架,而Spring MVC是其Web开发部分,提供了一种组织和构建Web应用程序的结构。它包括模型组件、视图组件和控制器组件,使得开发者可以更专注于业务逻辑,...

    J2EE开源框架

    - **RSS 工具**:RSSLibJ 和 RSSLib4J 分别支持读取和生成 RSS 文件,方便实现信息聚合。 2. **模型层框架** - **持久层框架**:Hibernate 是一款流行的 ORM(对象关系映射)框架,它能够将 Java 对象映射到...

    C#开发的RSS工具

    C#作为Microsoft .NET框架的主要开发语言,提供了丰富的库和API,使得开发RSS工具变得高效且易于维护。这个工具可能包括以下关键组件和功能: 1. **RSS解析器**:该工具的核心部分是解析RSS源的能力。C#中的XML类库...

    Python_开源简洁可自部署的RSS翻译器 Translate RSS feeds into your langu.zip

    标题中的“Python_开源简洁可自部署的RSS翻译器”指的是一个使用Python编程语言开发的开源项目,其目的是将RSS(Really Simple Syndication)订阅源的内容自动翻译成用户指定的语言。RSS是一种网络内容聚合格式,它...

    AfritXia.RssFoundationRSS聚合框架源码

    该框架使用 Visual Studio 2008 开发,开发语言是 C#,.NET Framework 颁布是 3.5。在 Visual Studio 2005 下应该也可以编译通过!RssFoundation 是一个很简单的框架,其最大特点是使用结构解决问题,而不是使用算法...

    一个简单的RSS网络阅读器

    这个项目是一个基于.NET框架开发的Windows窗体应用程序,专门用于阅读RSS(Really Simple Syndication)订阅源。RSS是一种XML格式,它允许用户订阅博客、新闻站点或其他定期更新的内容,而无需直接访问这些网站。...

    .net新闻阅读器RSS源码

    .NET新闻阅读器RSS源码是一个基于.NET框架开发的软件,用于获取、解析和展示RSS(Really Simple Syndication) feed,这是一种广泛使用的Web内容发布格式,主要用于新闻聚合和博客更新。RSS使得用户无需直接访问各个...

    Laravel开发-rss-l5

    【Laravel 开发 - RSS-L5】:在深入探讨Laravel 5的RSS生成器之前,我们首先要理解Laravel框架的基础。Laravel是一款基于PHP的开源Web应用框架,以其优雅的语法、强大的功能和丰富的生态系统赢得了开发者们的喜爱。...

    RSS.rar_RSS

    6. **依赖库**:如果RSS阅读器是开源项目,可能还包含了所有必要的外部库或框架,以便在不同平台上正确运行。 通过解压"RSS.rar"并探索其内容,你可以深入了解RSS阅读器的实现细节,以及XML解析和数据呈现的技术。...

Global site tag (gtag.js) - Google Analytics