ICC


サンプルをダウンロード(80KB)

このサンプルを使用するためには,LWPライブラリおよびXMLライブラリの「RSS」が必要です.事前にインストールをしておいてください.


1. RSSをパースする

XML::RSS モジュールを使用します.
生成したXML::RSSインスタンスのparseメソッドを実行します.

my $source = get("http://xxx/xxx.rss"); # $source へ内容の読み込み
    my $rss = new XML::RSS; # XML::RSSインスタンスの生成
$rss->parse($source); # パースの実行



2. RSSを解読する

  • 事前準備する
  • XML::RSS要素から取り出す文字列にはUTF-8ヘッダがついています.これを取り除く関数を作成します.

sub conv_encoding{
	$source = shift;
	utf8::encode($source);
	return $source;
}


  • RSSを解読する
このサンプルではchannel およびitemの基本的な項目(title, link, description)および,Dateを取得しています.同様の方法で,他の要素を取得することも可能です.先述のUTF-8ヘッダを取り除いて出力します.

  • channel要素からの取得方法

$feed = $rss->{'channel'}; # channel要素を取り込み

conv_encoding($feed->{'title'}); # title要素の取り出し
conv_encoding($feed->{'link'}); # link要素の取り出し

  • item要素からの取得方法
XML::RSSオブジェクトのitems配列に格納されています. 順番はRSSの順番と同じになります.

foreach my $items (@{$rss->items}){
	conv_encoding($item->{'title'}); # title要素の取り出し
	conv_encoding($item->{'link'}); # link要素の取り出し