user3675188
user3675188

Reputation: 7409

How could I parse the XML into hash

I hope I can get the list of hashed like that.

Is there any gem can do me a favor ?

Expected result

[
    {
     "prog_name": "TAIWAN CTA Index",
     "prog_id": 9
    },
    {
     "prog_name": "CTO CTA Index",
     "prog_id": 12
    },    
]

Original input file source.xml

<prog>
  <prog_name>TAIWAN CTA Index</prog_name>
  <prog_id>9</prog_id>
</prog>
<prog>
  <prog_name>CTO CTA Index</prog_name>
  <prog_id>12</prog_id>
</prog>
...

Upvotes: 1

Views: 88

Answers (1)

froderik
froderik

Reputation: 4808

You should have a look at Nokogiri. Something like:

@doc = Nokogiri::XML(<IO thing here>)
@doc.xpath('prog').map do |prog_element| 
  {
    'prog_name' => prog_element.xpath('prog_name').content,
    'prog_id' => prog_element.xpath('prog_id').content
  }
end

would do it for you.

Upvotes: 2

Related Questions