【发布时间】:2015-11-29 04:35:26
【问题描述】:
我想使用 Nokogiri 从 URL 导入 XML 文件并将其保存到我的 PostgreSQL 数据库中。
在我的 schema.rb 中,我有下表:
create_table "centres", force: :cascade do |t|
t.string "name"
t.string "c_type"
t.text "description"
t.float "lat"
t.float "long"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
以下是我正在导入的文件的示例:
<facility>
<id>CG432</id>
<facility_name>Cairncry Community Centre</facility_name>
<expiration>2099-12-31T23:59:59Z</expiration>
<type>Community Centre</type>
<brief_description/>
<lat>57.1601027</lat>
<long>-2.1441739</long>
</facility>
我在 lib/tasks 中创建了以下 import.rake 任务:
require 'rake'
require 'open-uri'
require 'Nokogiri'
namespace :db do
task :xml_parser => :environment do
doc = Nokogiri::XML(open("http://sample.xml"))
doc.css('centre').each do |node|
facility_name = node.xpath("centre").text,
type = node.xpath("centre").text,
brief_description = node.xpath("centre").text,
lat = node.xpath("centre").text,
long = node.xpath("centre").text,
Centre.create(:facility_name => name, :type => c_type, :brief_description => description, :lat => lat, :long => long)
end
end
end
我试过rake db:migrate 和rake -T | grep import。
【问题讨论】:
标签: ruby-on-rails ruby xml import nokogiri