Rubyでatom rss xml を利用する

RSS

ググったらARのid:akio0911さんのサイトにたどり着いたよ。
http://d.hatena.ne.jp/akio0911/20090103
参考にして作った、ニコニコ動画から「病院逃げて」のタグを抽出する処理だよ。

require 'rss/2.0'
require 'open-uri'

open('http://zio3.net/nicoRss/Tag.ashx?p=%E7%97%85%E9%99%A2%E9%80%83%E3%81%92%E3%81%A6') do |http|
  response = http.read
  result = RSS::Parser.parse(response, false)
  result.items.each_with_index do |item,i|
    puts item.title
    puts item.link
  end
end

atom

TwitterAPIでatom取得したよ。putsよりppの方が読みやすいよ。

require 'rubygems'
require "feed-normalizer"
require 'pp'

url = 'http://twitter.com/statuses/public_timeline.atom'
posts = FeedNormalizer::FeedNormalizer.parse(open(url), :force_parser => FeedNormalizer::SimpleRssParser) 
pp posts

xml

同じくTwitterAPIでxmlだよ。

require 'net/http'
Net::HTTP.version_1_2
require 'rexml/document'

Net::HTTP.start ("twitter.com", 80) do |http|
  response = http.get("/statuses/public_timeline.xml")
  doc = REXML::Document.new response.body
  elems = doc.elements
  puts elems.to_a('statuses/status/text')
end

やり方は色々あるので、これが正解というわけでもないよ。