2011-05-03 3 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 –