我想从新闻源中提取title
和description
字段,http://www.tagesschau.de/newsticker.rdf
以将它们提供给 Mac 的文本到语音引擎。
我搜索了一个不错的 Ruby Gem 来做到这一点Nokogiri
,但所有从给定 XML 中“拉出一些东西”的示例似乎都以某种方式以 CSS 为中心。
有谁知道如何将title
anddescription
字段保存在数组中?
使用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
对于像 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