Hatena::ブログ(Diary)

はけの徒然日記 このページをアンテナに追加 RSSフィード

2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 |

2006-09-03(Sun)

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

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/hake/20060903/p2