package com.ninemax.application.rss;import java.net.URL;import java.text.SimpleDateFormat;import java.util.List;import com.sun.syndication.feed.synd.SyndCategory;import com.sun.syndication.feed.synd.SyndContent;import com.sun.syndication.feed.synd.SyndEnclosure;import com.sun.syndication.feed.synd.SyndEntry;import com.sun.syndication.feed.synd.SyndFeed;import com.sun.syndication.io.SyndFeedInput;import com.sun.syndication.io.XmlReader;/** * Java解析RSS实例 * * @author Darker * */@SuppressWarnings("all")public class RssPraseByThree { public static void main(String[] args) { RssPraseByThree test = new RssPraseByThree(); test.parseRss(); } public void parseRss() { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String rss = "http://iyanlei.com/feed"; try { URL url = new URL(rss); // 读取Rss源 XmlReader reader = new XmlReader(url); System.out.println("Rss源的编码格式为:" + reader.getEncoding() + "\r"); SyndFeedInput input = new SyndFeedInput(); // 得到SyndFeed对象,即得到Rss源里的所有信息 SyndFeed feed = input.build(reader); // 得到Rss新闻中子项列表 List entries = feed.getEntries(); // 循环得到每个子项信息 for (int i = 0; i < entries.size(); i++) { // 标题、连接地址、标题简介、时间是一个Rss源项最基本的组成部分 SyndEntry entry = (SyndEntry) entries.get(i); System.out.println("标题:" + entry.getTitle()); System.out.println("连接地址:" + entry.getLink()); SyndContent description = entry.getDescription(); System.out.println("标题简介:" + description.getValue()); System.out.println("发布时间:" + df.format(entry.getPublishedDate())); // 以下是Rss源可先的几个部分 System.out.println("标题的作者:" + entry.getAuthor()); // 此标题所属的范畴 List categoryList = entry.getCategories(); if (categoryList != null) { for (int m = 0; m < categoryList.size(); m++) { SyndCategory category = (SyndCategory) categoryList.get(m); System.out.println("此标题所属的范畴:" + category.getName()); } } // 得到流媒体播放文件的信息列表 List enclosureList = entry.getEnclosures(); if (enclosureList != null) { for (int n = 0; n < enclosureList.size(); n++) { SyndEnclosure enclosure = (SyndEnclosure) enclosureList.get(n); System.out.println("流媒体播放文件:" + enclosure); } } System.out.println(); } } catch (Exception e) { e.printStackTrace(); } }}
输出:
Rss源的编码格式为:UTF-8标题:动态加载多说评论连接地址:http://iyanlei.com/duoshuo-1.html标题简介:由于博客使用了异步加载,本来想用angularjs,但angularjs对于一个小博客来说有点重了,所以还是使用了pushState + Ajax(pjax),于是多说也需要实现动态加载。多说代...发布时间:2015-10-28 20:58:20标题的作者:Ray标题:Java缓存框架Ehcache使用连接地址:http://iyanlei.com/ehcache.html标题简介:简介EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。也是最流行的java缓存框架。框架概览核心定义:cache m...发布时间:2015-09-06 20:24:00标题的作者:Ray标题:后台判断Ajax请求连接地址:http://iyanlei.com/ajax.html标题简介:介绍AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。通过在后台与服务器进行少量数据交换...发布时间:2015-08-27 01:03:17标题的作者:Ray标题:Windows批处理切换IP地址连接地址:http://iyanlei.com/win_ip_change.html标题简介:前言由于工作和在家电脑网络环境不一致,工作需要设置固定IP,在家自动获取IP地址,所以找了个bat文件,方便切换地址。BAT文件复制另存为bat文件,用管理员运行即可@echo.@echo ...发布时间:2015-07-23 23:54:56标题的作者:Ray标题:Linux搭建SVN+Apache连接地址:http://iyanlei.com/linux_svn_apache.html标题简介:简介SVN是Subversion的简称,是一个开放源代码的版本控制系统。本文主要讲解Linux下SVN服务的搭建,同时配合Apache,可以在浏览器中访问SVN。SVN/Apache安装可以在官...发布时间:2015-07-23 19:40:00标题的作者:Ray标题:Chrome快捷键大全连接地址:http://iyanlei.com/chrome.html标题简介:平时基本都是使用chrome浏览器,找了个快捷键大全,加快使用效率标签页和窗口快捷键Ctrl+N打开新窗口。Ctrl+T打开新标签页。Ctrl+Shift+N在隐身模式下打开新窗口。按 Ctrl...发布时间:2015-07-04 15:22:00标题的作者:Ray标题:童言无忌连接地址:http://iyanlei.com/446.html标题简介:6.1 ,希望儿子能天天快乐。。。今天,儿子和老婆在小区玩耍,一小妹妹很喜欢我妈妈,一直叫我妈妈,阿姨阿姨,这个时候,老婆对儿子说:你看,小妹妹的嘴巴真甜!听后,儿子说:嗯,妈妈,我的嘴巴干。-...发布时间:2015-06-01 18:10:00标题的作者:Ray标题:分享Typecho主题sexful连接地址:http://iyanlei.com/typecho_theme_sexful.html标题简介:前言今天,分享下自己过去几个月制作和使用的Typecho主题sexful。在去年国庆,免费分享了自己typecho主题Ray-国庆 · Typecho主题Ray发布期间,也做了多个主题,最受关注...发布时间:2015-05-22 14:45:00标题的作者:Ray标题:Java操作图数据库Titan连接地址:http://iyanlei.com/java_titan.html标题简介:Titan简介Titan 是一个分布式的图形数据库,特别为存储和处理大规模图形而优化。支持不同的分布式存储层Cassandra 1.1HBase 0.92内置实现 Blueprints grap...发布时间:2015-05-19 15:55:08标题的作者:Ray标题:MapReduce性能优化小结连接地址:http://iyanlei.com/mapreduce_tips.html标题简介:简介使用Mapreduce开发程序有一段时间了,也积累了一些使用经验,后续可能会陆续使用Spark,在此总结一些Mapreduce的使用技巧。基本配置要减少网络延迟,配置所有节点在同一子网不使用...发布时间:2015-04-29 15:53:27标题的作者:Ray