从URL地址导入CSV并导出为XML - Rails

时间:2009-10-12 23:36:59

标签: ruby-on-rails xml csv import export

两个问题:

  1. 如何在没有表单的情况下从网址导入文件?

    示例: Organisation.import(:from =>'http://wufoo.com/report.csv')

  2. 如何在不从数据库中提取的情况下使用xml构建器?

  3. 更多信息

    我公司将wufoo用于网络表单。来自wufoo的数据导出为csv文件。要将数据存入我公司的cms,需要将其格式化为xml。除了csv文件的url之外,我不需要存储任何数据。我认为这可能是一个简单的rails应用程序。

2 个答案:

答案 0 :(得分:1)

使用open-uri(http://www.ruby-doc.org/stdlib/libdoc/open-uri/rdoc/)获取文件,使用ruby的csv库来解析它。或者,使用简单的csv-mapper(http://csv-mapper.rubyforge.org/)。

答案 1 :(得分:0)

这是一种方式:

require 'rio'
require 'fastercsv'

url = 'http://remote-url.com/file.csv'
people = FasterCSV.parse(rio(url).read)

xml = ''
1.upto(people.size-1) do |row_idx|
  xml << "  <record>\n"
  people[0].each_with_index do |column, col_idx|
    xml << "    <#{column.parameterize}>#{people[row_idx][col_idx]}</#{column.parameterize}>\n"
  end
  xml << "  </record>\n"
end