0

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

我搜索了一个不错的 Ruby Gem 来做到这一点Nokogiri,但所有从给定 XML 中“拉出一些东西”的示例似乎都以某种方式以 CSS 为中心。

有谁知道如何将titleanddescription字段保存在数组中?

4

2 回答 2

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
于 2012-10-08T15:35:58.423 回答
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
于 2012-10-08T23:50:23.323 回答