文档"doc.xml"没有有效的根(REXML :: ParseException)

Cod*_*ker 2 ruby xml ruby-on-rails xml-parsing

我正在尝试将XML文档首次转换为Ruby哈希,并且没有成功.我有一个XML文档,doc.xml和我的脚本一起放在一个文件夹中hashrunner.rb.

hashrunner.rb:

require 'active_support/core_ext/hash'
hash = Hash.from_xml("doc.xml")
puts hash
Run Code Online (Sandbox Code Playgroud)

<?xml version="1.0" encoding="US-ASCII"?>如果有用,那么XML文档的第一行是.

在我的控制台中,当我运行时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)
Run Code Online (Sandbox Code Playgroud)

作为一个相对较新的Ruby人,我不明白这意味着什么,并且一些互联网搜索也没有找到解释.首先,我甚至不确定我是否在from_xml方法中正确调用XML文件,所以请告诉我是否是这种情况.如果有帮助的话,我愿意使用不同的宝石或不同的方法.

Jac*_*own 8

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

hash = Hash.from_xml(File.read("doc.xml"))
Run Code Online (Sandbox Code Playgroud)