分类: Java
2013-12-21 14:26:35
RSS是一个标准的XML文件,Rss阅读器可以读取这个XML文件获得文章的信息,使用户可以通过Rss阅读器
而非浏览器阅读Blog,我们只要动态生成这个XML文件便可以了。RSSLibJ是一个专门读取和生成RSS的小
巧实用的Java库,大小仅25k,可以从[url][/url]下载rsslibj-
1_0RC2.jar和它需要的EXMLjar两个文件,然后复制到web/WEB-INF/lib/下。
rsslibj-1_0RC2.jar下载地址:[url][/url]
EXML.jar下载地址:[url][/url]
下载下来之后把 扩张名.zip 改为 .jar 就行了。
import com.rsslibj.elements.Channel;
public class Writer {
public static void main(String[] args)
throws InstantiationException, ClassNotFoundException,
IllegalAccessException {
Channel channel=new Channel();
channel.setDescription("This is my sample channel.");
channel.setLink("");
channel.setTitle("My Channel");
channel.setImage("",
"The Channel Image",
"foo.jpg");
channel.setTextInput("search",
"Search The Channel Image",
"The Channel Image",
"s");
channel.addItem("item1",
"The First Item covers details on the first item>",
"The First Item")
.setDcContributor("Joseph B. Ottinger");
channel.addItem("item2",
"The Second Item covers details on the second item",
"The Second Item")
.setDcCreator("Jason Bell");
System.out.println("The feed in RDF: "+channel.getFeed("rss"));
}
}
Channel channel = new Channel(); channel.setDescription(account.getDescription()); baseUrl = baseUrl.substring(0, n); channel.setLink("" + accountId); channel.setTitle(account.getTitle()); List articles = facade.getArticles(accountId, account.getMaxPerPage(), 1); Iterator it = articles.iterator(); while(it.hasNext()) { Article article = (Article)it.next(); channel.addItem("" + article.getArticleId(), article.getSummary(), article.getTitle()sdudd1221 ); } // 输出xml: response.setContentType("text/xml"); PrintWriter pw = response.getWriter(); pw.print(channel.getFeed("rss")); pw.close();
importcom.rsslibj.elements.Channel; publicclassWriter{ publicstaticvoidmain(String[]args) throwsInstantiationException,ClassNotFoundException, IllegalAccessException{ Channelchannel=newChannel(); channel.setDescription("Thisismysamplechannel."); channel.setLink("/"); channel.setTitle("MyChannel"); channel.setImage("/", "TheChannelImage", "/foo.jpg"); channel.setTextInput("/search", "SearchTheChannelImage", "TheChannelImage", "s"); channel.addItem("/item1", "TheFirstItemcoversdetailsonthefirstitem>", "TheFirstItem") .setDcContributor("JosephB.Ottinger"); channel.addItem("/item2", "TheSecondItemcoversdetailsontheseconditem", "TheSecondItem") .setDcCreator("JasonBell"); System.out.println("ThefeedinRDF:" channel.getFeed("rdf")); } }