2011-05-03 65 views
0

我正在使用XmlSimple将XML文档转换为红宝石哈希。原来的数据是这样的:XmlSimple为每个元素创建单元素数组 - 有更好的方法吗?

<resultPage> 
    <total>2</total> 
    <offset>0</offset> 
    <limit>200</limit> 
</resultPage> 

进入这个:

{ :resultPage => [ 
    { 
     :offset => [ "0" ], 
     :total => [ "2" ], 
     :limit => [ "200" ] 
    } 
] } 

注意它是如何把一切内幕数组,我想是因为它不知道如果架构允许的,比如多个实例, <offset>,内部<resultPage>。所以,要访问我的数据,我总是在所有内容的末尾添加一个[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"} 
+0

太棒了! RTFD FTW – 2011-05-03 18:40:50

相关问题