2012-07-31 31 views
2

我有些(不是「正確格式化」)的XML存儲爲一個字符串:Rails的3+轉換XML哈希並刪除「根」元素

xml_data_as_string = "<first_name>John</first_name><last_name>Smith</last_name>" 

我試圖將其轉換爲一個哈希這樣通過做

@hash[:first_name] # => John 

我可以做到這一點:可以參考它像這樣

Hash.from_xml("<root>#{xml_data_as_string}</root>") 

的from_xml方法似乎需要有是袋鼠t元素的XML。所以,我現在有參考哈希爲:

@hash[:root][:first_name] # => John 

這是有點不方便,我想知道是否有做到這一點的簡單方法。我查看了from_xml的API,它非常稀疏......顯示了1個沒有進一步解釋的例子。

這不是世界末日這樣做,但我想要一個更清潔的解決方案。

回答

2

@hash = Hash.from_xml("<root>#{xml_data_as_string}</root>")[:root]

XML數據需要正確的格式,解析,但這樣一來,你只需要調用[:root]一次。確保數據是好的,否則你會得到一個錯誤,要求[:root]

+0

確實有效。對我所做的事很好,謝謝。 – 2012-07-31 18:34:33