详细看代码,部分涉及到隐私的就给删了,但是不影响功能,里面的日期等格式化,不知道的可以看我前面的博客
/**
* 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
}
}