我正在使用XmlSimple将XML文档转换为ruby哈希。它会变成这样的数据:
<resultPage>
<total>2</total>
<offset>0</offset>
<limit>200</limit>
</resultPage>
进入这个:
{ :resultPage => [
{
:offset => [ "0" ],
:total => [ "2" ],
:limit => [ "200" ]
}
] }
请注意它是如何把所有内容都放在数组中的,我想是因为它不知道模式是否允许<offset>
内的多个实例,例如<resultPage>
。[0]
。因此,要访问我的数据,我总是在所有内容的末尾添加{{1}}。
我是否必须忍受这种情况,或者是否有一种优雅的方式?
答案 0 :(得分:1)
您可以将“ForceArray”选项传递给XmlSimple(默认为true,将其设置为false以摆脱数组)。
> XmlSimple.xml_in(str)
=> {"total"=>["2"], "offset"=>["0"], "limit"=>["200"]}
> XmlSimple.xml_in(str, {"ForceArray" => false})
=> {"total"=>"2", "offset"=>"0", "limit"=>"200"}