/**
* 根据链接地址得到数据
* @param url RSS形式的xml文件
* @throws IllegalArgumentException
* @throws FeedException
*/
public void parseXml(URL url) throws IllegalArgumentException, FeedException {
try {
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = null;
URLConnection conn;
conn = url.openConnection();
String content_encoding = conn.getHeaderField("Content-Encoding");
if (content_encoding != null && content_encoding.contains("gzip")) {
System.out.println("conent encoding is gzip");
GZIPInputStream gzin = new GZIPInputStream(conn
.getInputStream());
feed = input.build(new XmlReader(gzin));
} else {
feed = input.build(new XmlReader(conn.getInputStream()));
}
List entries = feed.getEntries();//得到所有的标题<title></title>
for(int i=0; i < entries.size(); i++) {
SyndEntry entry = (SyndEntry)entries.get(i);
System.out.println(entry.getTitle());
}
System.out.println("feed size:" + feed.getEntries().size());
} catch (IOException e) {
e.printStackTrace();
}
}
public void createXml() throws Exception {
/* 根据Channel源码提供的英文,Channel对象有两个构造器,一个默认的无参构造器用于clone对象,一个是有参的
* 我们自己指定的必须使用有参数的(因为我们需要许可证),指构造方法必须要创建一个type(版本),这个type不能随便写,必须要以rss_开头的版本号
* Licensed under the Apache License, Version 2.0 (the "License");
* 因为当前版本是2.0,所以就是rss_2.0,必须是rss_2.0否则会抛异常,该源码中写的已经很明白。
*/
Channel channel = new Channel("rss_2.0");
channel.setTitle("channel标题");//网站标题
channel.setDescription("channel的描述");//网站描述
channel.setLink("www.shlll.net");//网站主页链接
channel.setEncoding("utf-8");//RSS文件编码
channel.setLanguage("zh-cn");//RSS使用的语言
channel.setTtl(5);//time to live的简写,在刷新前当前RSS在缓存中可以保存多长时间(分钟)
channel.setCopyright("版权声明");//版权声明
channel.setPubDate(new Date());//RSS发布时间
List<Item> items = new ArrayList<Item>();//这个list对应rss中的item列表
Item item = new Item();//新建Item对象,对应rss中的<item></item>
item.setAuthor("hxliu");//对应<item>中的<author></author>
item.setTitle("新闻标题");//对应<item>中的<title></title>
item.setGuid(new Guid());//GUID=Globally Unique Identifier 为当前新闻指定一个全球唯一标示,这个不是必须的
item.setPubDate(new Date());//这个<item>对应的发布时间
item.setComments("注释");//代表<item>节点中的<comments></comments>
//新建一个Description,它是Item的描述部分
Description description = new Description();
description.setValue("新闻主题");//<description>中的内容
item.setDescription(description);//添加到item节点中
items.add(item);//代表一个段落<item></item>,
channel.setItems(items);
//用WireFeedOutput对象输出rss文本
WireFeedOutput out = new WireFeedOutput();
try {
System.out.println(out.outputString(channel));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (FeedException e) {
e.printStackTrace();
}
}
http://yueding920.blog.163.com/blog/static/352508902010521104722543/
分享到:
相关推荐
RSS(Really Simple Syndication)订阅是一种在线内容发布和分发的方式,它允许用户通过RSS阅读器或聚合器获取...通过深入研究和实践这个Rss订阅Demo,你可以更好地掌握RSS订阅的工作机制,并将其应用到自己的项目中。
- `Android Rss订阅源码Demo`:这是实际的源代码文件夹,包含项目的Java或Kotlin文件,以及必要的资源文件。 4. **源码分析**: - **RSS解析**:源码中应该有一个类负责处理RSS解析,可能包含`parseRssFeed()`...
综上所述,这个"RSS DEMO"是一个基于J2EE平台、使用JSP实现的Web应用程序,旨在提供RSS订阅服务。用户可以使用它来关注多个RSS源,而无需逐个访问网站。通过解压"rssdemo"并导入到开发环境,开发者可以进一步研究其...
这个"Android源码——Rss订阅源码Demo.zip"是一个实例,它可以帮助开发者理解如何在Android应用中实现RSS订阅功能。接下来,我们将详细讨论RSS订阅的基本概念以及这个Demo中的关键知识点。 RSS,全称“Really ...
本示例"Rss订阅源码Demo.zip"提供了一个Android应用程序,演示了如何实现RSS订阅功能。下面我们将深入探讨这个话题,讲解其相关技术点。 1. **RSS基础知识**: - RSS是一种XML格式,用于发布经常更新的内容,如...
这个“安卓Android源码——Rss订阅源码Demo.zip”是一个示例项目,它展示了如何在Android应用中实现RSS订阅功能。下面我们将深入探讨这个Demo中涉及的关键知识点。 首先,RSS(Really Simple Syndication)是一种...
这个名为"Android Rss订阅源码Demo.rar"的压缩包文件提供了一个Android应用程序的源代码,主要用于学习如何在Android平台上实现RSS订阅功能。RSS(Really Simple Syndication)是一种内容发布格式,常用于博客、新闻...
这个“Android Rss订阅源码Demo”是一个示例项目,它演示了如何在Android应用中实现RSS订阅功能。下面我们将详细探讨这个源码Demo中的关键知识点。 首先,我们需要了解RSS的基本概念。RSS是一种XML格式的文件,包含...
Android Rss订阅源码Demo.zip项目安卓应用源码下载Android Rss订阅源码Demo.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
在移动应用开发领域,RSS(Really Simple Syndication)阅读器是一种常见的工具,它允许用户订阅并获取来自不同网站的新闻、博客和其他在线内容。本项目是一个基于Android平台的RSS阅读器Demo,旨在帮助开发者理解和...
1. **信息汇聚**:RSS阅读器的核心功能是聚合来自不同来源的RSS订阅,将这些来源的最新内容汇集到一个统一的界面。这样,用户无需逐个访问各个网站,就能查看所有关注的新闻和更新。 2. **内容提取与分条显示**:...
【标题】"网站RSS订阅功能插件RSSMaker JSP版 v1.0_rssmaker_jsp.zip"是一款基于Java JSP技术开发的RSS订阅工具,主要用于帮助网站提供RSS(Really Simple Syndication)订阅服务。RSS是一种简易信息聚合的格式,...
4. **API接口**:可能与第三方新闻源(如RSS订阅)或社交媒体平台集成,通过API获取和分享新闻。 5. **实时性**:通过WebSocket或其他实时通信技术,实现新闻的即时推送,保持用户获取最新信息的能力。 6. **响应...
资讯阅读部分,开发者通常会接入新闻聚合平台,如RSS订阅或新闻API,如News API或Google News API。这样,应用可以定期更新并显示各类新闻标题,用户可以直接在应用内阅读感兴趣的内容。 五、分享功能 分享功能允许...
例如,index.html通常是网站的主页,crud.html可能涉及CRUD(创建、读取、更新、删除)操作的演示,jst_demo.html可能包含JavaScript或jQuery的示例,而rss_reader.html可能是RSS订阅功能的实现。auto_suggest.html...
- 订阅发布系统,如RSS阅读器订阅新闻源。 - 多线程编程中的线程间通信。 通过这个"observer-pattern-demo",你可以看到如何在Java中使用观察者模式实现对象之间的动态绑定和解耦,使得系统更具扩展性和灵活性。...
这可能包括RSS阅读器,它可以解析RSS或Atom feed,展示来自多个网站的聚合内容。新闻阅读器的开发需要理解XML解析、数据存储(如SQLite数据库或云同步)以及用户界面设计,以提供无缝的阅读体验。 在实际项目中,...