0

ruby でのオブジェクト マッピングにハッピー マッパーを使用しています。次に、API から取得した .xml ファイルの xml データを解析します。

API応答でzipファイルを取得し、それを抽出して、同じxml形式のデータを持つ5〜6個のファイルを取得します。各ファイルのデータは約 2 ~ 3 MB です。

このデータをファイルに保存し、検索操作を実行できるようにしたいと考えています。私はリレーショナルデータベースを使用したくありませんが、データをファイルに保存しようとしています。そのデータに対して後で検索操作を実行するのに十分効率的なデータを保存するためのより良いアプローチは何ですか。

require 'json'
require 'happymapper'

file_contents = File.read('/home/GhostRider/x.xml')    



  class Message
    include HappyMapper

    tag 'Message'
    element :color, String, :tag => 'Colour'
    element :bg_color, String, :tag => 'BgColour'

  end


  class Status
    include HappyMapper

    tag 'Status'
    element :text, String, :tag => 'Text'
    element :color, String, :tag => 'Colour'
    element :bg_color, String, :tag => 'BgColour'

    has_one :message, Message

  end

  class Line
    include HappyMapper

    tag 'Line' # if you put class in module you need tag
    element :name, String, :tag => 'Name'
    element :color, String, :tag => 'Colour'
    element :bg_color, String, :tag => 'BgColour'
    element :url, String, :tag => 'Url'

    has_one :status, Status

  end

  class Lines
    include HappyMapper

    tag 'Lines' # if you put class in module you need tag

    has_many :lines, Line
  end


item = Lines.parse(file_contents, :single => true)

item.lines.each do |i|

  puts i.name, i.color, i.url, i.status.text, i.status.message.color
end

取得したこのデータを保存する必要があります。

4

1 に答える 1

1

より良いアプローチは、レールから nokogiri や xml simple または default Hash.to_xml(xml file) のような xml セレクターを使用して xml を解析することです。次に、Ruby クラスを個別に定義します。これは、クラスをより適切に制御し、操作を実行するのに役立ちます。

于 2012-07-05T17:23:02.863 に答える