我目前正在使用Ruby中的Hpricot解析RSS提要。
所有元素都是可检索的,除了元素。
这就是我正在做的:
向导工作,而链接失败,当我做("/link")。Inspect显示它是一个空元素。但是如果您查看提要,所有条目都有带值的链接元素。
doc = Hpricot.parse(open("http://www.highways.gov.uk/rssfeed/rss.xml"))
(doc/:item).each do |xml_product|
puts xml_product.search("/guid").first.children.first.raw_string
puts xml_product.search("/link").first.children.first.raw_string
end
有什么问题吗?
这里的问题是您试图检索的格式不正确的xml:
<link />http://www.trafficengland.co.uk/map.aspx?isTrafficAlert=true&lat=53.4363602900352&lon=-2.31328109635184
因此,当你准备/link
查询时,你会得到NoMethod
错误,因为link
元素是空的。
似乎是hpricot
的问题。试试nokogiri
:
require 'nokogiri'
require 'open-uri'
doc = Nokogiri::XML(open("http://www.highways.gov.uk/rssfeed/rss.xml"))
doc.xpath("//item").each_with_index do |xml_product|
puts xml_product.xpath('guid').text
puts xml_product.xpath('link').text
end
# =>
391532
http://www.trafficengland.co.uk/map.aspx?....
....