`
gary0416
  • 浏览: 335191 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java读取rss

阅读更多

用到的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;
    }
}
2
1
分享到:
评论

相关推荐

    java代码-使用java解决RSS阅读器的问题的源代码

    java代码-使用java解决RSS阅读器的问题的源代码 ——学习参考资料:仅用于个人学习使用!

    java实现rss的发布和订阅

    RSSJava提供了一组API来创建、读取和写入RSS feeds,而Rome则是一个更全面的库,支持RSS和Atom格式,包含了解析、生成和订阅功能。 7. **RSS更新通知**: 虽然RSS本身不提供更新通知机制,但可以通过结合Webhooks...

    Rss格式书写规范和java中解析dom的四种方式

    RSS 格式书写规范和 Java 中解析 DOM 的四种方式 RSS(Really Simple Syndication,简易信息聚合)是一种 XML 方言,用于连锁 Web 内容和元数据。RSS 2.0 是当前最常用的版本,且与 0.91 向后兼容。RSS 文件由一个 ...

    Java 实现Rss阅读器

    Java实现的RSS阅读器是一个基于Java编程语言的软件应用,主要功能是解析并展示RSS(Really Simple Syndication)源中的内容。RSS是一种XML格式,用于发布新闻、博客和其他定期更新的网络内容。RSS阅读器可以帮助用户...

    读取RSS-SAX解析XML实例(java版)

    标题"读取RSS-SAX解析XML实例(java版)"所涉及的知识点主要集中在两个方面:一是如何读取RSS(Really Simple Syndication)数据,二是使用SAX解析XML文件。 RSS是一种用于发布新闻、博客和其他定期更新内容的格式...

    java实现的Rss

    Java实现的RSS是一种使用Java编程语言来创建、解析和消费RSS(Really Simple Syndication) feed的技术。RSS是一种基于XML的格式,常用于新闻聚合、博客更新和其他在线内容的发布,使得用户可以通过RSS阅读器轻松...

    RSS.zip_Rome.jar_java r_java rss_rss feed jar_rss java

    这可能是几个独立的Java类或一个完整的项目,展示了如何使用Rome来读取、创建和管理RSS源。 标签“rome.jar java_r java_rss rss_feed_jar rss_java”进一步确认了这个资源包的核心内容:Rome库的jar文件,以及与...

    Java开发的RSS项目

    项目中采用了**Rome库**,这是一个Java RSS和Atom处理库,它提供了处理RSS feed的API,包括读取、写入和解析RSS内容。Rome库使得开发人员能够方便地生成符合RSS规范的XML文件,或者解析已有的RSS源。 为了支持RSS的...

    javaRSS.zip

    Java RSS阅读器是一款基于Java开发的课程大作业项目,它主要功能是解析RSS(Really Simple Syndication) feeds,根据用户提供的URL,能够定向地读取RSS源中的新闻标题、摘要、发布日期等信息。RSS是一种内容聚合...

    JAVA xml RSS

    标题 "JAVA xml RSS" 暗示我们正在讨论如何在Java环境中处理XML数据,并且可能与RSS(Really Simple Syndication)格式的解析和生成有关。RSS是一种用于发布新闻和其他经常更新内容的XML标准,常用于博客、新闻站点...

    RSS订阅器(JAVA)

    JAVA提供了多种XML解析库,如DOM、SAX或StAX,它们可以用来读取、遍历和理解XML数据。 7. **RSS订阅与更新检测**:RSS订阅器需要定期检查所订阅的feed是否有新内容。这通常通过轮询机制实现,即定期向RSS源发送请求...

    RSS.rar_RSS_java rss

    1. 解析RSS源:读取并解析RSS XML文件,提取标题、链接、发布日期等关键信息。 2. 数据存储:将解析后的信息存储在内存或数据库中,以便展示和管理。 3. 用户界面:提供一个简单的用户界面,让用户可以浏览和订阅RSS...

    基于Java实现的RSS阅读器

    在这个项目中,我们基于Java语言实现了RSS阅读器,它具备了基本的RSS源加载和更新检测功能,使得用户能够方便地跟踪关注的网站动态。 首先,我们要理解RSS的本质。RSS文件通常以.xml格式存在,包含一系列频道...

    RSS.zip_RSS_RSS Java_android RSS_rss android_rss android

    这个"RSS.zip_RSS_RSS Java_android RSS_rss android_rss android"项目,显然是一款针对Android设备的RSS阅读应用,旨在提供一个交互式的、便捷的方式来浏览和跟踪RSS feed。 首先,我们要理解RSS是什么。RSS...

    java使用Rome解析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阅读器是一种利用Java编程语言和XML技术来解析和显示RSS(Really Simple Syndication)源的应用程序。RSS是一种数据格式,常用于新闻聚合、博客更新和其他在线内容发布,它允许用户订阅并获取网站...

    读取rss依赖lib

    为了在Java环境中读取RSS feed,我们需要依赖一些库来处理RSS XML数据。本篇文章将深入探讨如何在Java项目中使用给定的依赖库,包括`rome.jar`、`jdom-1.0.jar`,以及在WebLogic服务器和Linux 5 x64系统上运行的JDK ...

    java_rss.rar_EXML.jar _RSSLibJ _rome jar_rome.j

    它提供了一系列接口和类,用于读取、写入、创建和更新RSS feeds。开发者可以使用RSSLibJ来订阅RSS源,获取新的feed项,甚至可以创建自己的RSS feed。这个库简化了RSS相关的编程工作,让开发者无需深入了解RSS规范的...

    RSS是RSS的jar包

    - 读取RSS feed:解析XML文档,提取频道信息和条目详情。 - 创建RSS feed:构造RSS结构,添加频道和条目信息,生成XML输出。 - 更新RSS feed:修改现有RSS feed的内容,如添加、删除或更新条目。 - 集成RSS功能:将...

    RSS从入门到精通(Java语言初级版)-WORD、实例代码、jar包

    这些解析器能帮助读取RSS feed并将其转化为Java对象。 3. **实例代码**:提供的实例代码是学习RSS开发的关键。通过阅读和运行这些代码,你可以了解如何创建和解析RSS feed,如何使用Java实现RSS阅读器,以及如何...

Global site tag (gtag.js) - Google Analytics