*目次 [#c795ac5e]
#contents

*関連ページ [#abbccd6d]
-[[Rails3/RSSフィードの生成]]


*RSS基本 [#y58c9674]
-[[RSS Parser:http://www.cozmixng.org/~rwiki/?cmd=view;name=RSS+Parser]]がrubyに標準添付されている模様。
-以下の方法でバージョンを表示できる。
#pre{{
require 'rss'
p RSS:VERSION
}}

*RSS解析 [#tdf5944f]
** RSS Parserを使って解析 [#j785ef91]
-urlを渡せば中身を自動で読み込んで表示してくれる。itemはRSS::RDF::Item。
#pre{{
rss = RSS::Parser.parse('http://www.softantenna.com/rss.xml')
rss.items.each do |item|
  puts item.title
end
}}
-rssファイルの中身を読み込んで文字列を渡してもOK。
 rss = RSS::Parser.parse(File.read('rss.xml'))
-ファイル名を渡してもOK。
 rss = RSS::Parser.parse('rss.xml')
-ただしファイル名として渡した文字列がtainted?な場合読んでくれないようだ(parser.rbのnormalize_rssより)。ファイル名をコマンドライン引数から作ったりした場合なぜか読んでくれなくてはまるので注意。
#pre{{
    # Try to get the XML associated with +rss+.
    # Return +rss+ if it already looks like XML, or treat it as a URI,
    # or a file to get the XML,
    def normalize_rss(rss)
      return rss if maybe_xml?(rss)

      uri = to_uri(rss)
      
      if uri.respond_to?(:read)
        uri.read
      elsif !rss.tainted? and File.readable?(rss)
        File.open(rss) {|f| f.read}
      else
        rss
      end
    end
}}

※rssファイルの種類によって(RSSのバージョン違い)によってparse()の呼び出しで戻されるオブジェクトが異なる。

*RSS生成 [#x3cc1f72]
-[[Ruby で RSS を作成する方法 - present:http://tnakamura.hatenablog.com/entry/2013/02/18/203347]]


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS