从XML DTD在Ruby中生成对象模型
时间:2020-03-05 18:43:21 来源:igfitidea点击:
我有一个带有DTD的XML文档,并且希望能够访问XML模型,如下所示:
title = Thing.Items[0].Title
在Ruby中,有没有一种方法可以基于DTD生成这种对象模型?还是我坚持使用REXML?
谢谢!
解决方案
回答
如果包含active_support gem(带有rails),则会将from_xml方法添加到Hash对象。然后,我们可以调用Hash.from_xml(xml_content),它将返回可用于访问数据的哈希。
我不知道将xml映射到对象的简单方法,但是我们可以创建一个包装器类,该包装器类将方法调用委托给保存数据的基础哈希。
回答
我们可以使用ruby版本的xml-simple。
我们不需要安装gem,因为我相信它已经安装了rails。
http://xml-simple.rubyforge.org/
回答
我知道这个问题是在不久前被问到的,但是如果我们想要真正的Thing.Items [0] .Title类型格式,则只需使用OpenStruct。
require 'rubygems' require 'activesupport' # For xml-simple require 'ostruct' h = Hash.from_xml File.read('some.xml') o = OpenStruct.new h o.thing.items[0].title