method
from_xml
v4.1.8 -
Show latest stable
- Class:
Hash
from_xml(xml, disallowed_types = nil)public
Returns a Hash containing a collection of pairs when the key is the node name and the value is its content
xml = <<-XML <?xml version="1.0" encoding="UTF-8"?> <hash> <foo type="integer">1</foo> <bar type="integer">2</bar> </hash> XML hash = Hash.from_xml(xml) # => {"hash"=>{"foo"=>1, "bar"=>2}}
DisallowedType is raised if the XML contains attributes with type="yaml" or type="symbol". Use Hash.from_trusted_xml to parse this XML.
1Note
Looks like this method has trouble with attributes:
ex:
require 'rubygems'
require 'bundler'
require 'active_support/core_ext'
require 'pp'
xml =
'<test id="appears">
<comment id="doesnt appear">
it worked
</comment>
<comment>
see!
</comment>
<comment />
</test>'
hash = Hash.from_xml(xml)
pp hash
#=>{"test"=>{"id"=>"appears", "comment"=>["it worked", "see!", nil]}}
# Notice how the id attribute on the first comment element doesn't appear.