Java生成RSS-XML文件
详细看代码,部分涉及到隐私的就给删了,但是不影响功能,里面的日期等格式化,不知道的可以看我前面的博客
/** * author:humf */ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import org.apache.log4j.Logger; import com.sun.syndication.feed.module.SipoModule; import com.sun.syndication.feed.module.SipoModuleImpl; import com.sun.syndication.feed.rss.Channel; import com.sun.syndication.feed.rss.Description; import com.sun.syndication.feed.rss.Item; import com.sun.syndication.io.FeedException; import com.sun.syndication.io.WireFeedOutput; public class RssUtil { private static Logger logger = Logger.getLogger(RssUtil.class); public static String createXml(Map map) throws Exception { SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); // Channel channel = new Channel("rss_2.0"); if (map.get("title") != null && !"".equals(map.get("title"))) channel.setTitle(map.get("title").toString()); if (map.get("") != null && !"".equals(map.get(""))) channel.setPubDate(format.parse((String) map.get(""))); if (map.get("") != null && !"".equals(map.get(""))) channel.setDescription(map.get("").toString()); if (map.get("link") != null && !"".equals(map.get("link"))) channel.setLink(map.get("link").toString());// 订阅地址 /*if (map.get("pubdate") != null && !"".equals(map.get("pubdate"))) channel.setPubDate(DateUtil.parseDayDate(map.get("pubdate")+""));*/ channel.setEncoding("UTF-8");// RSS文件编码 channel.setLanguage("ZH_CN");// RSS使用的语言 // channel.setTtl(5);//time to live的简写,在刷新前当前RSS在缓存中可以保存多长时间(分钟) if (map.get("") != null && !"".equals(map.get(""))) channel.setCopyright("");// if (map.get("") != null && !"".equals(map.get(""))) channel.setPubDate(format.parse((String) map.get(""))); if (map.get("items") != null) { List arrays = (ArrayList) map.get("items"); List<Item> items = new ArrayList<Item>(); for (int i = 0; i < arrays.size(); i++) { Map itemMap = (Map) arrays.get(i); Item item = new Item(); Description description = new Description();// 初始化Item的Description对象 description.setValue(itemMap.get("description").toString());// 设置Description的值 if (itemMap.get("title") != null && !"".equals(itemMap.get("title"))) item.setTitle(itemMap.get("title").toString()); if (itemMap.get("url") != null && !"".equals(itemMap.get("url"))) item.setLink(itemMap.get("url").toString()); if (itemMap.get("legalDate") != null && !"".equals(itemMap.get("legalDate"))) item.setPubDate(format.parse(itemMap.get("legalDate").toString())); if (itemMap.get("description") != null && !"".equals(map.get("description"))) item.setDescription(description); List moduleList = item.getModules(); SipoModule sipomodule = new SipoModuleImpl(); /*if (itemMap.get("url") != null && !"".equals(itemMap.get("url"))) sipomodule.setUrl(itemMap.get("url").toString()); if (itemMap.get("") != null && !"".equals(itemMap.get(""))) sipomodule.setCode(itemMap.get("").toString());// if (itemMap.get("") != null && !"".equals(itemMap.get(""))) sipomodule.setGroup(itemMap.get("").toString());// if (itemMap.get("") != null && !"".equals(itemMap.get(""))) sipomodule.setNpl(itemMap.get("").toString());// if (itemMap.get("description") != null && !"".equals(itemMap.get("description"))) sipomodule.setDescription(itemMap.get("description").toString());// if (itemMap.get("identifier") != null && !"".equals(itemMap.get("identifier"))) sipomodule.setIdentifier(itemMap.get("identifier").toString());// if (itemMap.get("") != null && !"".equals(itemMap.get(""))) sipomodule.setLegal(itemMap.get("").toString());// /*if (itemMap.get("pages") != null && !"".equals(itemMap.get("pages"))) sipomodule.setPage(itemMap.get("pages").toString());*/ moduleList.add(sipomodule); item.setModules(moduleList); items.add(item); } if (!items.isEmpty()) channel.setItems(items); } WireFeedOutput out = new WireFeedOutput(); try { String xml = out.outputString(channel); return xml; } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (FeedException e) { e.printStackTrace(); } return null; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub } }