用到的jar包为jdom.jar, rome-1.0.jar(https://rome.dev.java.net/dist/rome-1.0.jar)
package com.gary.util.rss;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URL;
import java.util.List;
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.io.FeedException;
import com.sun.syndication.io.SyndFeedInput;
import com.sun.syndication.io.XmlReader;
/**
* RSS/Atom
* 支持从文件或URL读取
* @author gary
*
*/
public class FeedReader {
public static void main(String[] args) {
String source = "http://www.oschina.net/project/rss";
// String source = "rss_local_example.xml";
try {
//输出发布日期,链接,标题等内容,可自定义
String[] outputContent = {"publishedDate","link","title"};
print(read(source).getEntries(), outputContent);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (FeedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
/**
* 输出
* @param entries 内容
* @param args 要输出的列名称
* @throws SecurityException
* @throws NoSuchMethodException
* @throws IllegalArgumentException
* @throws IllegalAccessException
* @throws InvocationTargetException
*/
public static void print(List<SyndEntry> entries, String[] args) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException{
for (int i = 0; i < entries.size(); i++) {
SyndEntry entry = (SyndEntry) entries.get(i);
Object o = entry;
Class<? extends Object> cls = o.getClass();
Method m = null;
for (int j = 0; j < args.length; j++) {
String methodName = "get" + args[j].substring(0,1).toUpperCase() + args[j].substring(1);
m=cls.getMethod(methodName, (Class<?>[])null);
System.out.println(args[j]+":"+m.invoke(o, (Object[])null));
}
System.out.println("==========================================");
}
}
/**
* 读取
* @param source 目标
* @return
* @throws IOException
* @throws FeedException
* @throws IllegalArgumentException
*/
public static SyndFeed read(String source) throws IllegalArgumentException, FeedException, IOException{
//SyndFeedInput:从远程读到xml结构的内容转成SyndFeedImpl实例
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = null;
if(source.startsWith("http")){
URL feedUrl = new URL(source);
//rome按SyndFeed类型生成rss和atom的实例,
//SyndFeed是rss和atom实现类SyndFeedImpl的接口
feed = input.build(new XmlReader(feedUrl));
}else{
File feedUrl = new File(source);
feed = input.build(new XmlReader(feedUrl));
}
return feed;
}
}
分享到:
相关推荐
java代码-使用java解决RSS阅读器的问题的源代码 ——学习参考资料:仅用于个人学习使用!
RSSJava提供了一组API来创建、读取和写入RSS feeds,而Rome则是一个更全面的库,支持RSS和Atom格式,包含了解析、生成和订阅功能。 7. **RSS更新通知**: 虽然RSS本身不提供更新通知机制,但可以通过结合Webhooks...
RSS 格式书写规范和 Java 中解析 DOM 的四种方式 RSS(Really Simple Syndication,简易信息聚合)是一种 XML 方言,用于连锁 Web 内容和元数据。RSS 2.0 是当前最常用的版本,且与 0.91 向后兼容。RSS 文件由一个 ...
Java实现的RSS阅读器是一个基于Java编程语言的软件应用,主要功能是解析并展示RSS(Really Simple Syndication)源中的内容。RSS是一种XML格式,用于发布新闻、博客和其他定期更新的网络内容。RSS阅读器可以帮助用户...
标题"读取RSS-SAX解析XML实例(java版)"所涉及的知识点主要集中在两个方面:一是如何读取RSS(Really Simple Syndication)数据,二是使用SAX解析XML文件。 RSS是一种用于发布新闻、博客和其他定期更新内容的格式...
Java实现的RSS是一种使用Java编程语言来创建、解析和消费RSS(Really Simple Syndication) feed的技术。RSS是一种基于XML的格式,常用于新闻聚合、博客更新和其他在线内容的发布,使得用户可以通过RSS阅读器轻松...
这可能是几个独立的Java类或一个完整的项目,展示了如何使用Rome来读取、创建和管理RSS源。 标签“rome.jar java_r java_rss rss_feed_jar rss_java”进一步确认了这个资源包的核心内容:Rome库的jar文件,以及与...
项目中采用了**Rome库**,这是一个Java RSS和Atom处理库,它提供了处理RSS feed的API,包括读取、写入和解析RSS内容。Rome库使得开发人员能够方便地生成符合RSS规范的XML文件,或者解析已有的RSS源。 为了支持RSS的...
Java RSS阅读器是一款基于Java开发的课程大作业项目,它主要功能是解析RSS(Really Simple Syndication) feeds,根据用户提供的URL,能够定向地读取RSS源中的新闻标题、摘要、发布日期等信息。RSS是一种内容聚合...
标题 "JAVA xml RSS" 暗示我们正在讨论如何在Java环境中处理XML数据,并且可能与RSS(Really Simple Syndication)格式的解析和生成有关。RSS是一种用于发布新闻和其他经常更新内容的XML标准,常用于博客、新闻站点...
JAVA提供了多种XML解析库,如DOM、SAX或StAX,它们可以用来读取、遍历和理解XML数据。 7. **RSS订阅与更新检测**:RSS订阅器需要定期检查所订阅的feed是否有新内容。这通常通过轮询机制实现,即定期向RSS源发送请求...
1. 解析RSS源:读取并解析RSS XML文件,提取标题、链接、发布日期等关键信息。 2. 数据存储:将解析后的信息存储在内存或数据库中,以便展示和管理。 3. 用户界面:提供一个简单的用户界面,让用户可以浏览和订阅RSS...
在这个项目中,我们基于Java语言实现了RSS阅读器,它具备了基本的RSS源加载和更新检测功能,使得用户能够方便地跟踪关注的网站动态。 首先,我们要理解RSS的本质。RSS文件通常以.xml格式存在,包含一系列频道...
这个"RSS.zip_RSS_RSS Java_android RSS_rss android_rss android"项目,显然是一款针对Android设备的RSS阅读应用,旨在提供一个交互式的、便捷的方式来浏览和跟踪RSS feed。 首先,我们要理解RSS是什么。RSS...
然后,我们创建一个方法来读取并解析RSS feed: ```java public SyndFeed parseRssFeed(String feedUrl) throws Exception { URL url = new URL(feedUrl); InputStream is = url.openStream(); SyndFeedInput ...
Java+XML编写的RSS阅读器是一种利用Java编程语言和XML技术来解析和显示RSS(Really Simple Syndication)源的应用程序。RSS是一种数据格式,常用于新闻聚合、博客更新和其他在线内容发布,它允许用户订阅并获取网站...
为了在Java环境中读取RSS feed,我们需要依赖一些库来处理RSS XML数据。本篇文章将深入探讨如何在Java项目中使用给定的依赖库,包括`rome.jar`、`jdom-1.0.jar`,以及在WebLogic服务器和Linux 5 x64系统上运行的JDK ...
它提供了一系列接口和类,用于读取、写入、创建和更新RSS feeds。开发者可以使用RSSLibJ来订阅RSS源,获取新的feed项,甚至可以创建自己的RSS feed。这个库简化了RSS相关的编程工作,让开发者无需深入了解RSS规范的...
- 读取RSS feed:解析XML文档,提取频道信息和条目详情。 - 创建RSS feed:构造RSS结构,添加频道和条目信息,生成XML输出。 - 更新RSS feed:修改现有RSS feed的内容,如添加、删除或更新条目。 - 集成RSS功能:将...
这些解析器能帮助读取RSS feed并将其转化为Java对象。 3. **实例代码**:提供的实例代码是学习RSS开发的关键。通过阅读和运行这些代码,你可以了解如何创建和解析RSS feed,如何使用Java实现RSS阅读器,以及如何...