ruby编写的RSS读取程序

读取RSS数据其实很简单,通过调用HTTP的get方法访问数据源,将结果交给REXML解析。与Rails里访问某些webservice有相似之处。

【清单一】
def air_deals
source = ‘http://b2b.expedia.com/daily/outposts/rss/getRSSDeals.asp?mdbcat=20&dealName=Best%20Flight%20Deals’
#调用get方法
@rss_str = Net::HTTP.get(URI.parse(source))
#处理字符串,去除空白符
@rss_str = @rss_str.gsub(/\n?\r?\t?/,'')
#新建一个XML文档
xml_doc = REXML::Document.new @rss_str
#处理结果以数组方式保存,数组里的每一条记录就是一个消息。消息封装在AirfareRssReader中,见【清单二】
airfare_readers = Array.new
xml_doc.elements["rss/channel"].each_element("//item") do |ele|
reader = AirfareRssReader.new
reader.title = ele.elements["title"].get_text
reader.pub_date = ele.elements["pubDate"].get_text
reader.description = ele.elements["description"].get_text
reader.link = ele.elements["link"].get_text
airfare_readers << reader
end
#渲染页面
render 。。。。。
end
【清单二】
class AirfareRssReader
attr_accessor :title, :pub_date, :description, :link
end

#TODO:明天继续webservice的访问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值