2

初めて XML ドキュメントを Ruby ハッシュに変換しようとしていますが、成功していません。私の XML ドキュメント はdoc.xml、スクリプトと一緒にフォルダにありますhashrunner.rb

hashrunner.rb

require 'active_support/core_ext/hash'
hash = Hash.from_xml("doc.xml")
puts hash

XML ドキュメントの最初の行は<?xml version="1.0" encoding="US-ASCII"?>です。

コンソールで を実行するruby hashrunner.rbと、次のエラー メッセージが表示されます。

/Users/me/.rvm/gems/ruby-1.9.3-p374/gems/activesupport-4.0.0/lib/active_support/xml_mini/rexml.rb:34:in `parse':The document "doc.xml" does not have a valid root (REXML::ParseException)

Ruby に比較的慣れていない私には、これが何を意味するのかわかりません。また、一部のインターネット検索でも説明が見つかりませんでした。まず、from_xmlメソッドで XML ファイルを正しく呼び出しているかどうかもわかりません。その場合はお知らせください。それが役立つなら、私は別のgemまたは別のアプローチを使用することにオープンです。

4

1 に答える 1

9

Hash::from_xmlファイル名文字列ではなく、XML 文字列を使用する必要があると確信しています。試す:

hash = Hash.from_xml(File.read("doc.xml"))
于 2013-09-12T19:57:00.383 に答える