(Ruby)如何将XML文件中的数据导入SQLite表



我想将XML文件中的数据导入到我的SQLite表中。我该怎么办?我真的需要一些帮助。这是我的代码,我不知道这些有什么问题。

require 'rubygems'
require 'nokogiri'
require 'open-uri'
class AddCoursesData < ActiveRecord::Migration
  def up
    Course.delete_all
    courses = Nokogiri::XML(File.open("courses.xml"))
    courses.css('course').each do |node|
      children = node.children
      Course.create(
        acode: node['acode'],
        code: node['code'],
        sgid: node['sgid'],
        name: children.css('name').inner_text,
        ects: children.css('ects').inner_text,
        year: children.css('year').inner_text,
        period: children.css('period').inner_text,
        institute: children.css('institute').inner_text,
        description: children.css('description').inner_text,
        timetable: children.css('timetable').inner_text,
        lecture_material: children.css('lecture_material').inner_text,
        goals: children.css('goals').inner_text,
        participant_count: children.css('participant_count').inner_text,
        specialities: children.css('specialities').inner_text,
        examination: children.css('examination').inner_text
      )
    end
  end
  def down
  end
end

然后我输入

>rake db:migrate  

上面写着

"rake aborted!
 cannot load such file -- nokogiri
 D:in 'migrate'
 Tasks: TOP=> db:migrate"

我已经安装了nokogiri。我真的不知道如何导入这些数据。你能帮我吗?非常感谢!!

这是我的rubygems环境

D:BitNamirubystackrubyworkUvAcourses>gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.3
  - RUBY VERSION: 1.9.3 (2012-05-25 patchlevel 231) [i386-mingw32]
  - INSTALLATION DIRECTORY: D:/BitNami/rubystack/ruby/lib/ruby/gems/1.9.1
  - RUBY EXECUTABLE: D:/BitNami/rubystack/ruby/bin/ruby.exe
  - EXECUTABLE DIRECTORY: D:/BitNami/rubystack/ruby/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-mingw32
  - GEM PATHS:
     - D:/BitNami/rubystack/ruby/lib/ruby/gems/1.9.1
     - C:/Users/Lulu/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/

您的Ruby有多旧?

在Ruby 1.8.7之前,我们必须以开始我们的需求列表

require 'rubygems'

因为RubyGems不是Ruby标准库的一部分。如果我们不这样做,我们将无法找到所有外部(非核心和非标准lib)宝石。

现在,这已经不是必要的了。

判断是否安装了Nokogiri的其他方法是在命令行中键入以下内容:

gem list nokogiri
which nokogiri

首先查看已安装gem的内部列表。第二个询问Linux或Mac OS OS是否看到gem安装的"nokogiri"命令。

相关内容

  • 没有找到相关文章

最新更新