Perl-users.jp

RSS(XML::Feed)

http://search.cpan.org/dist/XML-Feed/

XML::Feed という CPAN モジュールをつかうと容易に RSS をパーズ/作成することができます。

パーズする

以下がスクリプト実装例です。

use strict;
use warnings;
use XML::Feed;
use URI;
binmode STDOUT, ":utf8";

my $url = "http://d.hatena.ne.jp/naoya/rss";

my $feed = XML::Feed->parse( URI->new( $url ) );
for my $item ( $feed->entries ) {
    print $item->title, "\n";
}

出力例は以下のとおり。

補足: 新はてなブックマークと Flash の利用について
はてなブックマークエンジニア、ディレクターを募集します
インターフェイス指向設計
Introduction to Information Retrieval #5 の復習資料
YAPC::Asia 2008
Introduction to DBIx::MoCo
Hadoop Streaming

作成する

以下がスクリプト実装例です。

use strict;
use warnings;
use utf8;
use XML::Feed;

my $rss = XML::Feed->new('RSS');
$rss->title('test');
$rss->link('http://example.com/');
$rss->add_entry(do {
    my $entry = XML::Feed::Entry->new('RSS');
    $entry->title('My first post');
    $entry->link('http://example.com/foobar');
    $entry;
});
print $rss->as_xml, "\n";

出力例は以下のとおり。

<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0"
 xmlns:dcterms="http://purl.org/rss/1.0/modules/dcterms/"
 xmlns:blogChannel="http://backend.userland.com/blogChannelModule"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel>
<title>test</title>
<link>http://example.com/</link>
<description></description>

<item>
<title>My first post</title>
<link>http://example.com/foobar</link>
<guid isPermaLink="true">http://example.com/foobar</guid>
</item>
</channel>
</rss>

目次へ

Last modified: $Date: 2008-05-22T09:21:23.154313Z $