- package org.zjut.romefunction;
- /**
- * this class is parse the rss and
- * return a Feed for other classes use;
- *
- * @autor xuhaimin
- *
- */
- import java.io.IOException;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Set;
- import org.zjut.PO.Category;
- 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;
- import com.sun.syndication.io.FeedException;
- import com.sun.syndication.io.SyndFeedInput;
- import com.sun.syndication.io.XmlReader;
- public class ParseRss {
- URL feedUrl;
- SyndFeed feed;
- /**
- * @author xuhaimin
- * @param rss
- * @return Feed 解析RSS 得到Feed;
- */
- public Feed parse(Rss rss) {
- Category category = rss.getCategory();
- Feed feed = new Feed();
- Set<Item> items = new HashSet<Item>();
- SyndFeed synfeed = getSyndFeed(rss);
- String title = synfeed.getTitle();
- System.out.println(title);
- String url = synfeed.getLink();
- System.out.println(url);
- List entries = synfeed.getEntries();
- for (int i = 0; i < entries.size(); i++) {
- SyndEntry entry = (SyndEntry) entries.get(i);
- System.out.println("pubdate is null?????"
- + entry.getPublishedDate());
- System.out.println("entry 的title 是%%%%%%%%%5" + entry.getTitle());
- Item item = new org.zjut.PO.Item();
- item.setTitle(entry.getTitle());
- String description = entry.getDescription().getValue().replaceAll(
- "<[.[^<]]*>", "");
- if (description == null || description.equals(""))
- item.setDescription("对不起,没有该新闻的描述");
- item.setDescription(description);
- item.setAuthor(entry.getAuthor());
- item.setSource("");
- item.setPubDate(entry.getPublishedDate());
- item.setLink(entry.getLink());
- item.setFeed(feed);
- // item.setOnclick(onclick);
- items.add(item);
- }
- feed.setCategory(category);
- feed.setTitle(title);
- feed.setUrl(url);
- feed.setItems(items);
- return feed;
- }
- /**
- *
- * @param rss
- * @return SyndFeed 根据RSS 得到一个RSS中间件
- */
- public SyndFeed getSyndFeed(Rss rss) {
- URL feedUrl = null;
- try {
- feedUrl = new URL(rss.getRssUrl());
- } catch (MalformedURLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- SyndFeedInput input = new SyndFeedInput();
- SyndFeed synfeed = null;
- try {
- synfeed = input.build(new XmlReader(feedUrl));
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (FeedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return synfeed;
- }
- }
ROME解析RSS(代码)
最新推荐文章于 2021-02-16 08:06:19 发布