构建器可用于将xml文件映射到对象吗?

时间:2012-03-08 21:35:42

标签: ruby-on-rails ruby xml builder

我正在寻找一种将xml文件映射到ruby类的方法。

班级:https://github.com/airbrake/airbrake/blob/master/lib/airbrake/notice.rb

ruby​​类实际上有一个to_xml方法,它使用构建器生成一个xml文件。

我需要反过来做xml并初始化ruby对象。

对我来说,最好的方法是什么?

表现是一个考虑因素。

1 个答案:

答案 0 :(得分:0)

有些人在使用happymapper gem。从他们的例子:

dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
require File.join(dir, 'happymapper')

file_contents = File.read(dir + '/../spec/fixtures/statuses.xml')

class User
  include HappyMapper

  element :id, Integer
  element :name, String
  element :screen_name, String
  element :location, String
  element :description, String
  element :profile_image_url, String
  element :url, String
  element :protected, Boolean
  element :followers_count, Integer
end

class Status
  include HappyMapper

  element :id, Integer
  element :text, String
    element :created_at, Time
    element :source, String
    element :truncated, Boolean
    element :in_reply_to_status_id, Integer
    element :in_reply_to_user_id, Integer
    element :favorited, Boolean
    has_one :user, User
end

statuses = Status.parse(file_contents)
statuses.each do |status|
  puts status.user.name, status.user.screen_name, status.text, status.source, ''
end