【问题标题】:Can builder be used to map an xml file to an object?builder可以用于将xml文件映射到对象吗?
【发布时间】:2012-03-08 21:35:42
【问题描述】:

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

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

ruby 类其实有一个 to_xml 方法,使用builder来生成一个xml文件。

我需要做相反的事情并获取 xml 并初始化 ruby​​ 对象。

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

性能是一个考虑因素。

【问题讨论】:

    标签: ruby-on-rails ruby xml builder


    【解决方案1】:

    工作中的一些人使用了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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-22
      • 2021-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      相关资源
      最近更新 更多