【发布时间】:2013-01-27 00:13:43
【问题描述】:
我正在使用 Rails 和 Nokogiri 来解析一些 XML 提要。
我已经解析了一个 XML 提要,我想解析多个提要并按日期对项目进行排序。它们是 Wordpress 提要,因此它们具有相同的结构。
在我的控制器中,我有:
def index
doc = Nokogiri::XML(open('http://somewordpressfeed'))
@content = doc.xpath('//item').map do |i|
{'title' => i.xpath('title').text, 'url' => i.xpath('link').text, 'date' => i.xpath('pubDate').text.to_datetime}
end
end
在我看来,我有:
<ul>
<% @content.each do |l| %>
<li><a href="<%= l['url'] %>"><%= l['title'] %></a> ( <%= time_ago_in_words(l['date']) %> )</li>
<% end %>
</ul>
上面的代码可以正常工作。我尝试解析多个提要并收到 404 错误:
feeds = %w(wordpressfeed1, wordpressfeed2)
docs = feeds.each { |d| Nokogiri::XML(open(d)) }
我如何解析多个提要并将它们添加到哈希中,就像使用一个 XML 提要一样?我需要在页面加载时一次解析大约 50 个 XML 提要。
【问题讨论】:
-
404 只是告诉 url 不存在?您确定这些 URL 有效吗?您拥有的其他代码应该没问题。
-
OpenURI::HTTPError in PublicController#index 404 Not Found
-
'feeds = %w(wordpressfeed1, wordpressfeed2)' 是伪代码吗?如果是,那么您将字符串“wordpressfeed1”作为网址,您的意思是:'feeds = [wordpressfeed1, wordpressfeed2]'?
-
我有真正的 urls 到 wordpress 提要.. 我刚刚为这个问题创建了一个示例..
标签: ruby-on-rails ruby nokogiri