`
Callan
  • 浏览: 736639 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

初用rome

    博客分类:
  • Java
阅读更多

Rome 是 java.net 上的一个开源项目,不仅包括各种syndication feeds的解析器与生成器,而且还包括能够把一种格式转换成另外一种格式的转换器。

 如下是我生成网站的rss的代码:

java 代码
  1. // Rome中RSS的可选标准       
  2. // rss_0.90, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0, rss_2.0, atom_0.3        
  3. private static final String RSS_TYPE = "rss_2.0";    
  4.  // 取出频道下面的所有文章       
  5.   
  6.  public ActionForward execute(ActionMapping mapping, ActionForm form,   
  7.    HttpServletRequest request, HttpServletResponse response)   
  8.    throws Exception {   
  9.              
  10.      //  得到RSS数据操作接口   
  11.     RssDao rssDao = (RssDao)getBean(RssDao.class);   
  12.         
  13.      Channel channel = "频道对象";   
  14.              
  15.      List articles = "查询出来的所有频道文章";   
  16.              
  17.      outputRssFeed(response, rssDao.createChannelFeed(channel, articles));   
  18.         
  19.      return null;   
  20.     }   
  21.   
  22.     
  23.   
  24.  // 将SyndFeed写入HttpServletResponse       
  25.     private boolean outputRssFeed(HttpServletResponse response, SyndFeed feed) {       
  26.         boolean result = false;       
  27.         feed.setFeedType(RSS_TYPE);       
  28.         response.setContentType(MIME_TYPE);       
  29.         SyndFeedOutput output = new SyndFeedOutput();      
  30.         try {       
  31.             output.output(feed, response.getWriter());       
  32.             result = true;       
  33.         } catch (IOException e) {       
  34.             e.printStackTrace();       
  35.         } catch (FeedException e) {       
  36.             e.printStackTrace();       
  37.         }       
  38.         return result;       
  39.     }     
  40.   
  41.     
  42.   
  43.    //////rssDao的方法   
  44.   public SyndFeed createChannelFeed(Channel channel,List articles){   
  45.   SyndFeed feed = new SyndFeedImpl();   
  46.      
  47.       // 设置RSS标题   
  48.         feed.setTitle(channel.getTitle() + "频道");   
  49.            
  50.         // 设置标题的链接   
  51.         feed.setLink("http://*******");   
  52.            
  53.         // 设置描述   
  54.         feed.setDescription(channel.getDescription());   
  55.            
  56.         feed.setEntries(getChannelEntries(articles));    
  57.            
  58.   return feed;   
  59.  }   
  60.     
  61.  private List getChannelEntries(List articles) {    
  62.   List entries = new ArrayList();       
  63.         SyndEntry entry;       
  64.         SyndContent description;       
  65.            
  66.         // 创建item集合   
  67.         for (ChannelArticle article : articles) {       
  68.             entry = new SyndEntryImpl();       
  69.             entry.setTitle(article.getTitle());       
  70.             entry.setLink("每篇文章的链接");       
  71.             entry.setPublishedDate(new Date());       
  72.                
  73.             description = new SyndContentImpl();       
  74.             description.setType("text/html");       
  75.             description.setValue(article.getContent());       
  76.                    
  77.             entry.setDescription(description);      
  78.                
  79.             entries.add(entry);       
  80.         }       
  81.         return entries;      
  82.  }  
分享到:
评论

相关推荐

    java使用Rome解析Rss的实例

    在这个方法中,我们使用`XmlReader`从URL获取RSS XML内容,然后用`SyndFeedInput`构建了一个`SyndFeed`对象,该对象包含了RSS feed的所有信息,如标题、描述、条目等。 有了`SyndFeed`对象,我们可以方便地访问RSS ...

    rome-1.0.jar rome.jar 源码

    1. **导入源码**:首先,将"ROME1.0"压缩包解压,获取到"rome-1.0.jar"的源码文件,可以使用IDE如Eclipse或IntelliJ IDEA导入源码项目。 2. **了解包结构**:查看源码中的包组织,如`com.rometools`下的各个子包,...

    rome-1.0RC2rss解析

    2. **XML绑定**:Rome使用了JAXB(Java Architecture for XML Binding)来实现XML与Java对象之间的映射。这使得从XML到Java对象的转换变得简单,反之亦然。开发者只需要定义好对应的Java模型类,Rome就能自动进行...

    rome-0.9.jar

    解压后,开发者可以直接将"rome-0.9.jar"添加到Java项目的类路径中,以便在项目中使用Rome的功能。 "rome-license.txt"则包含了Rome库的许可协议,这是开源软件中常见的文件,通常会声明软件的使用、修改和分发的...

    jdom和rome1.0包

    在描述中提到的“rome开发rss”,意味着这个压缩包可能包含了使用ROME库进行RSS开发的相关示例或代码。JDOM的提及则表明可能也有使用JDOM处理XML数据的例子。 标签“rss”、“dome”和“rome1.0”进一步强调了这些...

    可以用的jdom+rome.jar

    JDOM和ROME的结合使用,可以实现从XML文档中提取RSS Feed,然后通过ROME解析这些Feed,提取出文章标题、描述、链接等信息,甚至可以进一步处理这些信息,比如存入数据库或进行数据分析。这样的组合,为开发者提供了...

    rome源码包和jar包

    通过了解和使用Rome,开发者可以轻松地实现对网络新闻聚合的需求,比如解析百度RSS新闻的不同栏目,获取实时资讯。 1. **Rome框架概述** - Rome是一个轻量级的Java库,专注于XML feeds的处理,支持RSS 0.9x, RSS ...

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

    2. **源码与文档**:在下载集合中,"rome-1.0-javadoc"包含了完整的API文档,这对于理解并有效地使用ROME框架至关重要。通过这些Javadoc,开发者可以查找每个类、方法和接口的详细说明,了解如何实现特定功能。 3. ...

    jdom+rome JAR包

    在实际开发中,如果你的项目需要发布RSS馈送或者处理来自RSS源的数据,结合使用JDOM和ROME可以极大地简化工作流程。JDOM处理XML的基本结构,而ROME则专注于RSS的特定需求。这两个库的组合,使得在Java环境中开发RSS...

    rome-1.0.jar.zip

    总的来说,"rome-1.0.jar.zip" 提供了一个方便的方式来获取和使用罗马库,而"rome-license.txt"则确保了合法和合规的使用。对开发者来说,深入理解这个库的功能和许可条款将有助于更有效地集成和利用这个工具。

    rome 实现rss订阅,中文出错解决方法

    本文将深入探讨如何解决使用Rome处理RSS订阅时遇到的中文出错问题。 首先,我们需要理解问题的根源。在处理XML文件(如RSS feed)时,编码问题通常与字符集设置有关。RSS规范通常要求XML文档声明一个字符编码,如...

    rome-1.16.0.jar

    Rome解析RSS必备jar

    jdom+rome-0.9 jar包合集

    首先,使用JDOM构建XML结构,然后用ROME的API将其转换成RSS格式。例如,可以先使用JDOM创建一个`Document`对象,然后添加`Element`来表示RSS feed的基本信息,如频道(channel)、标题、描述等。接着,为每个内容项...

    ROME1.0的API

    ROME1.0的API文档, 该文档为自制CHM版本,没有检索.

    rome-1.0.jar

    rome-1.0.jar

    利用Rome解析Rss

    Rome 是一个基于 Java 的开源项目,提供了一组 Atom/RSS 工具类,以使得用 Java 可以更方便和快捷地操作大部分 Syndication 格式数据。Rome 需要 JDK1.4 以上版本和 JDom.jar。 Rome 的主要功能包括解析器和生成器...

    rome-1.5.0.jar

    Rome是为RSS聚合而开发的一个框架,让你可以快速的开发基于java的RSS阅读

    时间插件ROME

    2. **示例或测试文件**:这些文件演示了如何在实际项目中引入和使用ROME插件,有助于开发者快速理解和应用。 - `index.html`:可能是一个简单的示例页面,展示如何在HTML中调用插件。 - `example.js`:可能包含...

    rome-1.0.0.jar

    rome包rss使用 支持各种rss版本 XXXXX XXXXX XXXXX XXXX

    Rome使用简单说明二(部分关键源码分析)

    《Rome使用简单说明二(部分关键源码分析)》 在Java开发中,Rome是一个用于处理RSS和Atom feeds的开源库。它提供了一系列的API,使得开发者能够轻松地读取、创建和更新这些标准格式的feed。本文将重点探讨Rome库中的...

Global site tag (gtag.js) - Google Analytics