2015-09-24 50 views
1

我希望我能得到這樣的散列列表。我怎麼能解析XML到散列

有什麼寶石可以幫我個忙嗎?

預期結果

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

原始輸入文件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> 
... 
+1

可能的重複[如何將XML轉換爲哈希在Rails?](http://stackoverflow.com/questions/4150856/how-do-i-convert-xml-into-a-hash-in- rails) – pangpang

+0

另一種可能的重複:http://stackoverflow.com/questions/1230741/convert-a-nokogiri-document-to-a-ruby-hash/7488299#7488299 – nathanvda

回答

2

你應該看看Nokogiri。就像:

@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 

會爲你做。