XML::FeedPP で RSS を出力する
PP は Pure Perl の略のようで、コンパイルする必要がないモジュールのため、レンタルサーバーでも利用することができる。
サンプルコード
#!/usr/bin/env perl use strict; use warnings; use utf8; use Encode; use DateTime; use XML::FeedPP; use Data::Dumper; my $language = 'ja'; my $rss_title = 'RSS 出力サンプル'; my $rss_url = 'http://www.example.com/'; my $dt = DateTime->now(time_zone => 'local'); my $pubdate = $dt->strftime('%Y-%m-%dT%H:%M:%S%z'); my %item1 = ( 'title' => 'タイトル1番目', 'link' => 'http://www.example.com/archives/1/', 'description' => '<p><a href="http://www.exaple.com/">本文1</a></p>', ); my %item2 = ( 'title' => 'タイトル2番目', 'link' => 'http://www.example.com/archives/2/', 'description' => '<div class="article"><p>本文2&3<br />改行は大事。</p></div>', ); my @items = (\%item1, \%item2); my $feed = XML::FeedPP::RSS->new(); $feed->language($language); $feed->title($rss_title); $feed->link($rss_url); $feed->pubDate($pubdate); foreach my $item (@items) { print Dumper($item); $feed->add_item(link => $item->{link}, title => $item->{title}, description => $item->{description}); } # RSS をファイルに出力 $feed->to_file( "index.rss" );
実行結果
<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0"> <channel> <title>RSS 出力サンプル</title> <link>http://www.example.com/</link> <language>ja</language> <pubDate>Thu, 25 Feb 2010 21:02:59 +0900</pubDate> <item> <title>タイトル1番目</title> <link>http://www.example.com/archives/1/</link> <guid isPermaLink="true">http://www.example.com/archives/1/</guid> <description><p><a href="http://www.exaple.com/">本文1</a></p></description> </item> <item> <title>タイトル2番目</title> <link>http://www.example.com/archives/2/</link> <guid isPermaLink="true">http://www.example.com/archives/2/</guid> <description><div class="article"><p>本文2&amp;3<br />改行は大事。</p></div></description> </item> </channel> </rss>