从RSS中删除空链接元素



我目前正在使用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&amp;lat=53.4363602900352&amp;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?....
     ....

相关内容

  • 没有找到相关文章

最新更新