philsivyer
asked on
returning data into columns from a hash
Hello
The following script further down looks up some sample xml data and data returned to a hash.
How can I now ge the data in the hash returned as columns see example data below..
First of all sample hash data...
{"CD"=>
[{"TITLE"=>["Empire Burlesque"],
"ARTIST"=>["Bob Dylan"],
"COUNTRY"=>["USA"],
"COMPANY"=>["Columbia"],
"PRICE"=>["10.90"],
"YEAR"=>["1985"]},
{"TITLE"=>["Hide your heart"],
"ARTIST"=>["Bonnie Tyler"],
"COUNTRY"=>["UK"],
"COMPANY"=>["CBS Records"],
"PRICE"=>["9.90"],
"YEAR"=>["1988"]},
No what I want is data returned like so,
Title Artist Country Company Price Year
Hide your heart Bonnie Tyler UK CBS Records 9.9 1988
etc
etc
require 'rubygems'
require 'xmlsimple'
require'open-uri'
a=open('http://www.w3schools.com/xml/cd_catalog.xml').read
xml=(a)
doc=XmlSimple.xml_in xml
require 'pp'
pp doc
The following script further down looks up some sample xml data and data returned to a hash.
How can I now ge the data in the hash returned as columns see example data below..
First of all sample hash data...
{"CD"=>
[{"TITLE"=>["Empire Burlesque"],
"ARTIST"=>["Bob Dylan"],
"COUNTRY"=>["USA"],
"COMPANY"=>["Columbia"],
"PRICE"=>["10.90"],
"YEAR"=>["1985"]},
{"TITLE"=>["Hide your heart"],
"ARTIST"=>["Bonnie Tyler"],
"COUNTRY"=>["UK"],
"COMPANY"=>["CBS Records"],
"PRICE"=>["9.90"],
"YEAR"=>["1988"]},
No what I want is data returned like so,
Title Artist Country Company Price Year
Hide your heart Bonnie Tyler UK CBS Records 9.9 1988
etc
etc
require 'rubygems'
require 'xmlsimple'
require'open-uri'
a=open('http://www.w3schools.com/xml/cd_catalog.xml').read
xml=(a)
doc=XmlSimple.xml_in xml
require 'pp'
pp doc
ASKER
Hello
When I introduce this ..
doc.each{|k,v|p v} or doc.each{|k,v|p k} .. it shows the key as CD - this part I am not interested in - it then shows the value as all the remainder opf the xml data - This is the bit I am interested in and split out as per the following
Title Artist Country Company Price Year
Hide your heart Bonnie Tyler UK CBS Records 9.9 1988
etc
etc
It looks like key of CD then hash,hash etc
When I introduce this ..
doc.each{|k,v|p v} or doc.each{|k,v|p k} .. it shows the key as CD - this part I am not interested in - it then shows the value as all the remainder opf the xml data - This is the bit I am interested in and split out as per the following
Title Artist Country Company Price Year
Hide your heart Bonnie Tyler UK CBS Records 9.9 1988
etc
etc
It looks like key of CD then hash,hash etc
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks very much for your time on this
ASKER
Thanks
Great work
Great work
You are welcome! Thanks for the points...
[{"TITLE"=>["Empire Burlesque"],
that is not closed anywhere. So is the structure a hash with a single element (key of 'CD' and an array value composed of hashes) or is it something else? I.e., is it:
{key, [ hash, hash, hash]} or...?