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 文件,所以如果是这样,请告诉我。如果有帮助,我愿意使用不同的宝石或不同的方法。

4

1 回答 1

9

我很确定Hash::from_xml必须采用 XML 字符串,而不是文件名字符串。尝试:

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