読者です 読者をやめる 読者になる 読者になる

「Java」RSSライブラリ Informa で RSS フィードを生成する

前回のエントリーで RSS フィードをパースしてみたので、今回は RSS フィードの生成をやってみました。その時のメモ。

・「JavaRSSライブラリ Informa で RSS フィードをパースしてみた - プログラム日記
http://a4dosanddos.hatenablog.com/entry/2014/02/11/232803

ドキュメント的には以下になりますね。

・Informa: RSS Library for Java - Quickstart

http://informa.sourceforge.net/quickstart.html


ドキュメントの「Build your own channel object model」「Serialize channel as RSS」あたりを参考に簡単に書いてみました。

■ RSSFeedCreate.java

import java.net.URL;

import de.nava.informa.core.ChannelBuilderIF;
import de.nava.informa.core.ChannelExporterIF;
import de.nava.informa.core.ChannelIF;
import de.nava.informa.core.ItemIF;
import de.nava.informa.exporters.RSS_2_0_Exporter;
import de.nava.informa.impl.basic.ChannelBuilder;

public class RSSFeedCreate {
	public static void main(String[] args) throws Exception {
		String chanName = "RSSFeedTest";
		ChannelBuilderIF builder = new ChannelBuilder();
		ChannelIF channel = builder.createChannel(chanName);
		channel.setTitle("Test Title");
		channel.setSite(new URL("http://www.example.com/"));
		channel.setDescription("Test Channel: " + chanName);
		ItemIF item1 = builder.createItem(channel, "Item 1 for " + chanName,
				"First in line", new URL("http://www.example.com/article1"));
		ItemIF item2 = builder.createItem(channel, "Item 2 for " + chanName,
				"Second in line", new URL("http://www.example.com/article1"));

		ChannelExporterIF exporter = new RSS_2_0_Exporter("RSSFeedCreate.xml");
		exporter.write(channel);
	}
}

■ 実行結果 ( RSSFeedCreate.xml)

<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" version="2.0">
  <channel>
    <title>Test Title</title>
    <link>http://www.example.com/</link>
    <description>Test Channel: RSSFeedTest</description>
    <item>
      <title>Item 1 for RSSFeedTest</title>
      <link>http://www.example.com/article1</link>
      <description>First in line</description>
    </item>
    <item>
      <title>Item 2 for RSSFeedTest</title>
      <link>http://www.example.com/article1</link>
      <description>Second in line</description>
    </item>
  </channel>
</rss>

とりあえず無事生成できてますかね。

まぁ、RSS の仕様とかは全然知らないので、ここははまた勉強が必要です。
仕様書は以下あたりか・・・
RSS 2.0 Specification (version 2.0.11)
http://www.rssboard.org/rss-specification

以上です。

[ 環境情報 ]
Windows 7 SP1
Java SE 7 Update 45
informa-0.7.0-alpha2
※ 依存関係のあるライブラリも含んでる「informa-0.7.0-alpha2-with-dependencies.zip」をダウンロードしました。上記サンプルであれば、ひとます「informa.jar」「jdom.jar」「commons-logging.jar」あたりだけで動きます。

・News Aggregation Library for Java - Browse Files at SourceForge.net
http://sourceforge.net/projects/informa/files/