我目前正在使用Ruby中的Hpricot解析RSS提要。
除元素外,所有元素都是可检索的。
这就是我正在做的事情:
guid工作,而链接失败,当我做(“/ link”)时。检查它说它是一个空元素。虽然如果您查看Feed,但所有项目都包含值的链接元素。
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
有什么可能出错的想法?
答案 0 :(得分:0)
此处的问题是您尝试检索的格式错误的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?....
....