Rss-Rome 聚合生成阅读器需要的XML文件
// 创建输入输出流
FileWriter fw = new FileWriter(rssPath);
//rssPath:参数,定义xml输出的地址,我选择了放在tomcat的项目中
//String rssPath = request.getRealPath("/")+"testRss\\test.xml";
BufferedWriter bw = new BufferedWriter(fw);
// 开始按照格式写入数据
bw.write("<?xml version=\"1.0\" encoding=\"GBK\"?>\r\n");
bw.write("<rss version=\"2.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:trackback=\"http://madskills.com/public/xml/rss/module/trackback/\" xmlns:wfw=\"http://wellformedweb.org/CommentAPI/\" xmlns:slash=\"http://purl.org/rss/1.0/modules/slash/\">\r\n");
bw.write("<channel>\r\n");
//定义频道
bw.write("<title>News</title>\r\n");
bw.write("<link>http://sms.ha.chinamobile.com/</link>\r\n");
bw.write("<description>Something</description>\r\n");
//上面三个是必选项
bw.write("<cloud domain=\"localhost\" port=\"8080\" path=\"/rss-xmlrpc\" registerProcedure= \"SayHello.sayHi\" protocol=\"xml-rpc\" />\r\n");
//cloud标签是可以到http://w3school.com.cn/rss/rss_reference.asp上去看看定义,我理解是一个实时提示,或者直接更新的标签
//注意:虽然我在这里写了,而且在项目中也进行了实现,但是没有任何效果,后面会介绍我对cloud的实现。
bw.write("<ttl>" + 3 + "</ttl>\r\n");
//rssArticle是一个ArrayList是用来放数据的
for (int i = 0; i < rssArticle.size(); i++) {
ArticleBean article = (ArticleBean) rssArticle.get(i);
bw.write("<item>\r\n");
bw.write("<title>" + article.getTitle() + "</title>\r\n");
bw.write("<author>" + article.getAuthorId() + "</author>\r\n");
bw.write("<pubDate>" + article.getPostTime()+ "</pubDate>\r\n");
bw.write("<description>" + article.getIntro()+ "</description>\r\n");
bw.write("<category>" + article.getCateId()+ "</category>\r\n");
bw.write("</item>\r\n");
}
bw.write("</channel>\r\n");
bw.write("</rss>");
// 关闭流,RSS发布完毕。
bw.close();
fw.close();
实现很简单,执行之后,可以在浏览器中打开生成的xml文件,看看效果。
下面介绍:Rss-Rome 阅读器读取XML文件。