解析基于Web的XML文件时出现问题

时间:2013-01-04 08:19:25

标签: ruby-on-rails xml

我编写了一个Ruby脚本来解析远程XML文件并使用Nokogiri从中提取一些数据。现在我正在尝试将更高级的版本编写为Rails应用程序。

我的代码在控制器内部。它类似于我在Ruby脚本中使用的代码,但它不起作用。我认为错误是因为它试图在本地而不是外部加载XML。

以下是Rails给我的错误:

No such file or directory - http://mal-api.com/anime/10?format=xml

以下是我的控制器中的代码示例:(如果需要,我可以提供整个内容,但它主要只是默认的Rails脚手架代码。)

def create
 require 'nokogiri'
 @anime = Anime.new(params[:anime])

 doc = Nokogiri::XML(open("http://mal-api.com/anime/#{@anime.mal_id}?format=xml"))

 #Title
 title = doc.css("anime english_title").inner_html
 #Snipped rails scaffold code
end

mal_id通过表单传递。 Nokogiri已添加到我的Gemfile中。

我有什么遗漏或我做错了吗? 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

默认情况下,ruby中的open方法用于打开文件。如果您想直接打开网址,则需要require 'open-uri'。可以在文档中找到更多信息:http://www.ruby-doc.org/stdlib-1.9.3/libdoc/open-uri/rdoc/OpenURI.html