質問

DTD を含む XML ドキュメントがあり、次のような XML モデルにアクセスできるようにしたいと考えています。

title = Thing.Items[0].Title

Ruby で、DTD に基づいてこの種のオブジェクト モデルを生成する方法はありますか?それとも REXML の使用に行き詰まっていますか?

ありがとう!

役に立ちましたか?

解決

xml-simple の Ruby バージョンを使用できます。

gem はレールとともにすでにインストールされていると思うので、インストールする必要はありません。http://xml-simple.rubyforge.org/

他のヒント

active_support gem (rails に付属) を含めると、メソッド from_xml が Hash オブジェクトに追加されます。その後、Hash.from_xml(xml_content) を呼び出すと、データへのアクセスに使用できるハッシュが返されます。

XML をオブジェクトにマップする簡単な方法はわかりませんが、データを保持する基になるハッシュにメソッド呼び出しを委任するラッパー クラスを作成することはできます。

この質問は少し前に行われたことは知っていますが、真の 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 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top