루비

2011-03-04 4 views
1

에 xmlsimple를 사용하여 XML에 해시를 변환 나는 xmlsimple 일을하지 않는루비

{ 
'1234' => {"key1"=>1234,"key2"=>"sdfsdf","key3"=>"sdfsdfs"}, 
'234' => {"key1"=>234,"key2"=>"sdfsdf","key3"=>"sdfsdfs"} 
} 

내가 문제가

<?xml version="1.0" encoding="UTF-8"?> 
<MyKeys> 
    <MyKey> 
    <Key1>1234/Key1> 
    <Key2>sdfsdf</Key2> 
    <Key3>sdfsdfs</Key3> 
    </MyKey> 
    <MyKey> 
    <Key1>234/Key1> 
    <Key2>sdfsdf</Key2> 
    <Key3>sdfsdfs</Key3> 
    </MyKey> 
</MyKeys> 

아래처럼 XML로 변환하려면 다음과 같은 형식의 해시를 가지고 그. 퍼팅하는 대신 < 1234> 태그를 생성합니다.

나는 이것을 제거하고 싶다 .... 어떤 도움? 심지어 ActiveSupport to_xml도 마찬가지입니다. 다른 옵션을 사용할 수 있습니까?

답변

2

외부 해시 키는 확실히 1234234입니다. xmlsimple이 올바른 구문 분석을 수행하고 있습니다. 해시에 MyKeys 또는 MyKey의 언급이 없습니다. xml로 변환하기 전에 해시를 필수 형식으로 변환해야합니다.

hash = { 
'1234' => {"key1"=>1234,"key2"=>"sdfsdf","key3"=>"sdfsdfs"}, 
'234' => {"key1"=>234,"key2"=>"sdfsdf","key3"=>"sdfsdfs"} 
} 
converted_hash = Hash[hash.map{|k, v| ["MyKey", v]}] 
result_hash = {"MyKeys" => converted_hash} 

이 해시에는 xmlsimple을 사용하십시오.

+0

검색을 위해 해시를 사용하고 싶었습니다. 따라서 나는 열쇠를 mykey로 변환 할 수 없다. 더 이상 해시를 통해 구문 분석하고 키를 변경하지 마십시오. – coder

+0

내가 실제로 한 것은 해시를 통과 시켰습니다. 해시 배열에 불과합니다. to_xml은 필요한 방식으로 생성 할 수있었습니다. – coder