0

我有一个带有 DTD 的 XML 文档,并且希望能够访问 XML 模型,如下所示:

title = Thing.Items[0].Title

有没有办法在 Ruby 中基于 DTD 生成这种对象模型?还是我坚持使用 REXML?

谢谢!

4

3 答案 3

2

如果您包含 active_support gem(带有 rails),它会将方法 from_xml 添加到 Hash 对象。然后您可以调用 Hash.from_xml(xml_content) ,它会返回一个哈希值,您可以使用它来访问数据。

我不知道将 xml 映射到对象的简单方法,但您可以创建一个包装类,将方法调用委托给保存数据的底层哈希。

于 2008-08-26T16:36:42.813 回答
1

我知道不久前有人问过这个问题,但如果你想要真正的 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 
于 2009-09-22T19:25:28.010 回答
0

您可以使用 xml-simple 的 ruby​​ 版本。

您不需要安装 gem,因为我相信它已经安装了 rails。 http://xml-simple.rubyforge.org/

于 2008-08-26T16:42:06.027 回答