`
manus
  • 浏览: 14556 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ROME更新RSS类 有什么可以再优化的地方 发现更新还是有点慢的

阅读更多
package org.zjut.romefunction;

/**
 * this class is update the news;
 * @author xuhaimin
 * 
 */

import java.util.Date;
import java.util.Iterator;
import org.zjut.DAOFactory.DAOFactory;
import org.zjut.PO.Feed;
import org.zjut.PO.Item;
import org.zjut.PO.Rss;

import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndFeed;

public class UpdateItems {

	public void perform(Rss rss) {
		System.out.println(rss.getId());

		SyndFeed syndfeed = new ParseRss().getSyndFeed(rss);

		String title = syndfeed.getTitle();
		Feed feed = DAOFactory.getIntance().createFeedDAO().getFeedByTitle(
				title);
		Date maxdate = getMaxDate(title);
		Iterator intor = syndfeed.getEntries().iterator();
		while (intor.hasNext()) {
			SyndEntry synden = (SyndEntry) intor.next();
			Date date = synden.getPublishedDate();
			if (date == null)
				continue;
			if (date.after(maxdate)) {
				System.err.println("当前数据库中" + feed.getTitle() + " 最新时间是"
						+ maxdate);
				System.err.println("当前rss 最新时间是" + date);

				/**
				 * 如果是更新新闻 就入库
				 */
				Item item = new Item();
				item.setTitle(synden.getTitle());
				String description=synden.getDescription().getValue().replaceAll("<[.[^<]]*>","");
				if(description==null||description.equals(""))
					item.setDescription("对不起,没有该新闻的描述");
				item.setDescription(description);
				item.setAuthor(synden.getAuthor());
				item.setSource("");
				item.setPubDate(synden.getPublishedDate());
				item.setLink(synden.getLink());
				item.setFeed(feed);

				System.err.println("@ 服务器正在更新" + feed.getTitle()
						+ "的内容..........................................");
				DAOFactory.getIntance().createItemDAO().saveItem(item);
			} else {
				break;
			}
		}
	}

	public Date getMaxDate(String title) {
		Feed feed = DAOFactory.getIntance().createFeedDAO().getFeedByTitle(
				title);
		Long feedid = feed.getId();
		Date date = org.zjut.HibernateUtil.Util.maxDate(feedid);
		return date;
	}

}
分享到:
评论
2 楼 manus 2007-05-28  
嗯???
引用

import org.zjut.PO.Feed;
import org.zjut.PO.Item;
import org.zjut.PO.Rss;

为什么要封装这些?? ROME本身提供的就很足够了啊...

这个是一些PO对象  是数据库的映射
1 楼 lordhong 2007-05-28  
嗯???
引用

import org.zjut.PO.Feed;
import org.zjut.PO.Item;
import org.zjut.PO.Rss;

为什么要封装这些?? ROME本身提供的就很足够了啊...

0.9早出来了哦, 更新的是:
1) ROME now supports the final version of the Atom Syndication Format RFC 4287: let's Nuke all these feeds! NEW
2) Enclosure support at the Synd level, for all our podcaster friends
3) Bug fixes and more. Details in the ChangeList
4) Modules galore: Content, iTunes Podcast, Slash, Google Base, Creative Commons, MediaRSS

2 和 4 是比较实用的更新.  Enclosure支持等了太久了...
Module这些以前都自己写, 现在有plugin好多了.

相关推荐

    rome-1.0RC2rss解析

    【罗马(Rome)RSS解析库1.0RC2详解】 在互联网信息爆炸的时代,RSS(Really Simple Syndication)成为了订阅和聚合新闻、博客、播客等动态内容的重要工具。RSS通过XML格式提供数据,使得用户可以无需访问各个网站...

    java使用Rome解析Rss的实例

    有了`SyndFeed`对象,我们可以方便地访问RSS feed的各个部分。例如,要获取RSS feed的标题和描述: ```java String title = feed.getTitle(); String description = feed.getDescription(); ``` 还可以遍历feed中...

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

    在开发Web应用时,RSS订阅是一项常见的功能,它能让用户轻松获取网站的更新内容。Rome是一个Java库,专门用于处理RSS和Atom feeds,帮助开发者实现RSS订阅功能。然而,在处理中文字符时,Rome可能会遇到编码问题,...

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

    - **RSS阅读器**:使用ROME和rsslib4j,开发者可以创建自己的RSS阅读器应用,让用户能够订阅和管理多个RSS源,获取实时更新。 - **内容聚合**:可以利用这些库将不同来源的RSS feed聚合在一起,形成一个统一的信息流...

    利用Rome解析Rss

    Rome 的扩展性好,有前途,功能强大,除了用来解析 RSS,还可以聚合和构造 RSS。ROME 的解析器和生成器的使用方法可以参考 ROME 的官方资料、开发文档教程、API 文档。 在使用 Rome 时,需要注意以下几点: * Rome...

    ROME + JDOM轻松实现RSS的操作

    总的来说,结合使用ROME和JDOM,我们可以轻松地处理RSS的读写操作,从而在Java应用程序中实现RSS订阅、发布和管理。这对于开发新闻聚合应用、博客平台或者其他需要集成RSS功能的系统非常有用。通过深入学习和实践,...

    基于Rome做的Rss读和写

    开发者可以使用Rome库轻松地将RSS数据集成到他们的Java应用中,无论是从网络抓取RSS源,还是生成新的RSS内容发布出去。 导入到Eclipse中意味着这是一个Java项目,包含必要的源代码和构建配置。用户可以直接在...

    RSS.zip_Rome.jar_java r_java rss_rss feed jar_rss java

    Java作为一种强大的编程语言,提供了处理RSS feed的库,如Rome,使得开发人员可以轻松地集成RSS功能到他们的应用程序中。 标题中的“RSS.zip_Rome.jar_java r_java rss_rss feed jar_rss java”表明这是一个与Java ...

    rome,用于rss和atom提要的java库.zip

    总的来说,Rome是一个强大的工具,简化了Java开发者处理RSS和Atom提要的工作,无论是创建新的提要,还是解析和显示已有提要,都能提供极大的便利。通过深入理解和实践,开发者可以充分利用这个库来提升内容聚合和...

    java_rss.rar_EXML.jar _RSSLibJ _rome jar_rome.j

    - **订阅和更新**:定期检查RSS源是否有新内容,一旦发现新项,可以向用户发送通知或更新到数据库。 - **转换RSS格式**:如果需要在不同RSS版本间转换,或者将RSS转换为Atom格式,这些库都可以提供帮助。 - **发布...

    rome-1.0 jdom 第一个RSS发布实例

    标题中的“rome-1.0 jdom 第一个RSS发布实例”揭示了本次讨论的主要内容,涉及到两个关键的Java库——Rome和JDOM,以及如何使用它们来创建和发布RSS(Really Simple Syndication) feed。RSS是一种XML格式,用于发布...

    rss-rome.jar

    NULL 博文链接:https://chenhao-yssy.iteye.com/blog/1074264

    jdom和rome1.0包

    通过使用ROME,开发者可以轻松地从网站抓取和解析RSS feed,或者创建自己的RSS feed并发布到网络。 在描述中提到的“rome开发rss”,意味着这个压缩包可能包含了使用ROME库进行RSS开发的相关示例或代码。JDOM的提及...

    可以用的jdom+rome.jar

    5. 如果需要,还可以使用ROME创建新的RSS Feed或更新已有的Feed。 在实际应用中,开发者可能会遇到的问题包括XML解析错误、RSS Feed格式不兼容、网络连接问题等,这些问题都需要通过良好的异常处理和错误排查技巧来...

    rome-1.0.jar rome.jar 源码

    8. **性能优化**:如果源码中有性能相关的注释或代码,可以学习作者如何优化解析速度和内存使用。 9. **扩展和自定义**:了解库是否支持自定义行为,如通过继承或回调机制,以便在自己的项目中扩展其功能。 源码...

    jdom+rome-0.9 jar包合集

    在IT行业中,XML...无论是为了解析XML文档,还是为了创建和维护RSS feeds,JDOM和ROME都是Java开发者不可或缺的工具。通过熟悉并掌握这两个库的使用,可以极大地提高开发效率,并简化与XML和RSS相关的任务。

    Rss,Atom聚合规范的XML文件解析(Rome,rssutils)

    在IT行业中,RSS(Really Simple Syndication)和Atom是两种广泛使用的互联网内容聚合规范,它们允许用户订阅并获取网站更新,如博客文章、新闻或播客。这些规范使用XML(可扩展标记语言)来结构化数据,使得软件...

    jdom+rome JAR包

    在IT行业中,RSS(Really Simple Syndication)是一种广泛使用的数据格式,它允许用户订阅和获取网站更新,如新闻、博客文章或播客等。而"jdom+rome JAR包"是两个Java库,用于帮助开发者更方便地处理XML文档,并...

    rome源码包和jar包

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

    rome-1.16.0.jar

    Rome解析RSS必备jar

Global site tag (gtag.js) - Google Analytics