Here's how to convert dynarex records into a hash e.g.


require 'rexml/document'
include REXML

xml =<


Bonsaiasd
Oakdf
Sycamoreddf
Mapleeer
Pineiuh
Bonsaivrf
Hawthornwet


XML

doc = Document.new(xml)

class REXML::Document

def records_to_h
XPath.match(self.root, 'records/*').map do |row|
XPath.match(row, '*').inject({}) do |r,node|
r[node.name.to_s.to_sym] = node.text.to_s
r
end
end
end

end

tree = doc.records_to_h

#=> [{:name=>"Bonsai", :origin=>"asd"}, {:name=>"Oak", :origin=>"df"}, {:name=>"Sycamore", :origin=>"ddf"}, {:name=>"Maple", :origin=>"eer"}, {:name=>"Pine", :origin=>"iuh"}, {:name=>"Bonsai", :origin=>"vrf"}, {:name=>"Hawthorn", :origin=>"wet"}]

tree[0][:name] #=> "Bonsai"
tree[0][:origin] #=> "asd"


Resources:
- Convert REXML document records into a Hash [dzone.com]

Read more: http://feeds.dzone.com/~r/dzone/snippets/~3/K-oIUEPiv-M/10773