RSSの解析 - REXMLを使う
Rubyの勉強
REXMLを使って、Podcasting Juice(http://www.podcastjuice.jp/)のRSSの解析のサンプルスクリプト。最近のはitunes関連のタグが入っているのでREXMLを使った方が柔軟に対応可能だと思う。
require 'kconv' # SJISに変換 require 'rexml/document' rss = nil begin # Podcasting JuiceのRSS f = File.open("F:/zzz/ruby_RDE/rdf.xml") rss = REXML::Document.new(f) ensure f.close end # 直接elementを指定する場合 title = rss.elements["/rss/channel/title"].text puts title.tosjis puts "----------" # <item>のみ抽出 rss.root.elements["channel"].each_element("item") do |elem| next unless elem.has_elements? # enclosure urlが複数存在する場合があるのでelementを1個ずつ確認 elem.each_element do |el| case el.expanded_name when "title" : puts "title = " + el.text.tosjis when "link" : puts "link = " + el.text.tosjis when "description" : puts "desc. = " + el.text.tosjis when "pubDate" : puts "date = " + el.text.tosjis when "category" : puts "cate. = " + el.text.tosjis when "author" : puts "auth. = " + el.text.tosjis when "enclosure" if el.has_attributes? puts "enclosure :" el.attributes.each{|name,val| puts " " + name + " = " + val} end when "itunes:title" : puts "itunes:title = " + el.text.tosjis end end puts "----------" end