RSS是一个标准的XML文件,Rss阅读器可以读取这个XML文件获得文章的信息,使用户可以通过Rss阅读器
而非浏览器阅读Blog,我们只要动态生成这个XML文件便可以了。RSSLibJ是一个专门读取和生成RSS的小
巧实用的Java库,大小仅25k,可以从http://sourceforge.net/projects/rsslibj/下载rsslibj-
1_0RC2.jar和它需要的EXMLjar两个文件,然后复制到web/WEB-INF/lib/下。
rsslibj-1_0RC2.jar下载地址:
http://sourceforge.net/project/downloading.php?group_id=71153&use_mirror=nchc&filename=rsslibj-1_0RC2.jar&27763931
下载下来之后把 扩张名.zip 改为 .jar 就行了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
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(
"http://localhost/"
);
channel.setTitle(
"My Channel"
);
channel.setImage(
"http://localhost/"
,
"The Channel Image"
,
"http://localhost/foo.jpg"
);
channel.setTextInput(
"http://localhost/search"
,
"Search The Channel Image"
,
"The Channel Image"
,
"s"
);
channel.addItem(
"http://localhost/item1"
,
"The First Item covers details on the first item>"
,
"The First Item"
)
.setDcContributor(
"Joseph B. Ottinger"
);
channel.addItem(
"http://localhost/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"
));
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
Channel channel =
new
Channel();
channel.setDescription(account.getDescription());
baseUrl = baseUrl.substring(
0
, n);
channel.setLink(
"http://server-name/home.c?accountId="
+ 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(
"http://server-name/article.c?articleId="
+ article.getArticleId(),
article.getSummary(), article.getTitle()
);
}
// 输出xml:
response.setContentType(
"text/xml"
);
PrintWriter pw = response.getWriter();
pw.print(channel.getFeed(
"rss"
));
pw.close();
|