2013年09月11日に投稿

[Ruby] RSS で使われている XML をパースする

Ruby 2.0.0 で、RSS で使われている XML をしたいと思ってライブラリを探したところ、RSSライブラリを見つけました。試してみたら非常に簡単にパースできましてので、サンプルコードを下記に示します。

下記はYahoo!ニュースのトピックスの RSS で配信されている記事のタイトルをすべて抜き出すコードです。

[ruby]
require ‘rss’
require ‘net/http’

xml = Net::HTTP.get(‘rss.dailynews.yahoo.co.jp’, ‘/fc/rss.xml’)

doc = RSS::Parser.parse(xml)
doc.items.each do |i|
p i.title
end
[/ruby]

4行目
RSS の URL に対して GET リクエストを送り、結果の XML を変数 xml に保存します。

6行目
RSS::Parser の parse メソッドの引数に XML データを渡すことでパースしてくれます。パースされた結果としてオブジェクトを変数 doc に保存します。

7行目
doc.items.each とすることで、RSS に含まれる全ての item に対して処理をすることができます。また、title プロパティを参照することで、各記事のタイトルにアクセスすることができました。

関連記事

Leave a Reply