【发布时间】:2013-06-30 18:52:07
【问题描述】:
require 'net/ftp'
require 'nokogiri'
server = "xxxxxx"
user = "xxxxx"
password = "xxxxx"
ftp = Net::FTP.new(server, user, password)
files = ftp.nlst('File*.xml')
files.each do |file|
ftp.getbinaryfile(file)
doc = Nokogiri::XML(open(file))
# some operations with doc
end
使用上面的代码,我可以解析/读取 XML 文件,因为它首先下载一个文件。
但是如何在不下载的情况下解析远程 XML 文件呢?
上面的代码是 rake 任务的一部分,在运行时会加载 rails 环境。
更新:
我不会创建任何文件。我将使用 mongoid 将信息导入 mongodb。
【问题讨论】:
-
是指不创建本地文件吗? IE。将(通过 FTP)文件内容复制到本地内存是否可以接受?
-
不,我不会创建本地文件。我将解析它并使用 mongoid 导入到 mongodb 中。我将使用此信息更新我的帖子。
-
是否可以使用 FTP 下载将 XML 源复制到内存中,但不向本地文件系统写入任何内容,是否可以接受?这是一个重要的区别 - 解析内容而不通过 FTP 以某种方式获取它需要您在 FTP 服务器上运行一个进程,这是可能的,但要复杂得多。
标签: ruby xml-parsing nokogiri ruby-on-rails-4 net-ftp