Rails 4解析xml并插入postgres

时间:2015-04-16 11:16:12

标签: ruby-on-rails ruby xml postgresql xml-parsing

当我在rails项目中更改我的数据库结构时,我需要新db结构中的现有数据。我生成了我的模型之一的xml如何将这些xml数据插入到数据库中。 我正在生成的xml是

本地主机:3000 /列表/ division_makes.xml

<?xml version="1.0"?>
<users>
    <user>
        <email>1410263233@nabthat.com</email>
        <role>dealer</role>
        <divisions>
            <division_name>BMW</division_name>
            <division_id>200000081</division_id>
        </divisions>
        <bids></bids>
        <counter_bids></counter_bids>
    </user>
    <user>
        <email>1410263236@nabthat.com</email>
        <role>dealer</role>
        <divisions>
            <division_name>Volvo</division_name>   
            <division_id>200010382</division_id>
        </divisions>
        <bids></bids>
        <counter_bids></counter_bids>
    </user>
</users>

1 个答案:

答案 0 :(得分:4)

添加到gemfile gem 'blockspring'

class Foo < ActiveRecord::Base
  require 'json'
  require 'blockspring'
  def self.foo(xml_string)
    json_obj = Blockspring.runParsed("xml-to-json", 
     { "my_xml" => xml_string }).params["converted"] 
    f = Foo.new
    f.name = json_obj['note']['to']
    f.save
  end
end
xml_string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<note>\n\t<to>Tove</to>\n\t<from>Jani</from>\n\t<heading>Reminder</heading>\n\t<body>Don't forget me this weekend!</body>\n</note>"
Foo.foo(xml_string)

这只是一个例子,如果您添加代码 - 我们可以帮助您更好。