DTD を含む XML ドキュメントがあり、次のような XML モデルにアクセスできるようにしたいと考えています。
title = Thing.Items[0].Title
Ruby で、DTD に基づいてこの種のオブジェクト モデルを生成する方法はありますか? または、REXML を使用して行き詰まっていますか?
ありがとう!
active_support gem (レールに付属) を含めると、メソッド 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
xml-simple の ruby バージョンを使用できます。
gem はレールと共に既にインストールされていると思われるので、インストールする必要はありません。 http://xml-simple.rubyforge.org/