*目次 [#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]]