使用Ruby和Nokogiri从RDF Feed中提取新闻?

时间:2012-10-08 14:59:46

标签: ruby xml nokogiri rdf

我想从title的新闻源中提取descriptionhttp://www.tagesschau.de/newsticker.rdf字段,将它们提供给Mac的文字转语音引擎。

我搜索一个不错的Ruby Gem来实现这个目标已经把我带到了Nokogiri,但所有“拉出”给定XML的例子似乎都以CSS为中心。

有没有人知道如何在数组中保存titledescription字段?

2 个答案:

答案 0 :(得分:1)

使用xpath / at_xpath(后者只返回一个元素):

require 'nokogiri'
require 'open-uri'
require 'pp'

entries = []
doc = Nokogiri::XML(open('http://www.tagesschau.de/newsticker.rdf'))
doc.xpath('/rss/channel/item').each do |item|
  entries << [item.at_xpath('title').text(), item.at_xpath('description').text()]
end

pp entries

答案 1 :(得分:1)

对于像RSS这样的结构化数据,我建议使用专用客户端,而不是使用Nokogiri滚动自己的解析器。

require 'simple-rss'
require 'open-uri'

rss = SimpleRSS.parse open('http://www.tagesschau.de/newsticker.rdf')
rss.entries.each do |entry|
  puts entry.title
  puts entry.description
end