私はDTDとXMLドキュメントを持っているからRubyでオブジェクトモデルを生成し、XMLモデルにアクセスできるようにするのが大好きですRubyでは、この種のオブジェクトモデルをDTDに基づいて生成するのですか?あるいは、私はREXMLを使用していますか?は、このような何かをXML DTD
ありがとうございます!
私はDTDとXMLドキュメントを持っているからRubyでオブジェクトモデルを生成し、XMLモデルにアクセスできるようにするのが大好きですRubyでは、この種のオブジェクトモデルをDTDに基づいて生成するのですか?あるいは、私はREXMLを使用していますか?は、このような何かをXML DTD
ありがとうございます!
xml-simpleのルビーバージョンを使用できます。
宝石は、すでにレール付きでインストールされていると思うのでインストールする必要はありません。 http://xml-simple.rubyforge.org/
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
ハ、あまり面白い。私はこの質問をグーグルでは、私はこの答えが好きだと思った、これは良い解決策だったと判断し、コードをコピーし、テストを走らせ、 1年半前にこの答えを残した人。 –
すべての答えは、Railsのを想定して、なぜ私は理解していません。それは質問に示されていますか? – Chinasaur
XmlSimpleはRailsの一部ですが、Railsに依存しません。あなたは 'gem install xml-simple'を使って全てのRailsをインストールせずにRubyにインストールすることができます。 –