我有很多级别的嵌套哈希,例如:
{ :foo => 'bar', :foo1 => { :foo2 => 'bar2', :foo3 => 'bar3', :foo4 => { :foo5 => 'bar5' }}}
我怎样才能将它们转换成这样的XML?:
<foo>bar</foo>
<foo1>
<foo2>bar2</foo2>
<foo3>bar3</foo3>
<foo4>
<foo5>bar5</foo5>
</foo4>
</foo1>
我尝试过xml.send
方法,但它将上面的嵌套哈希转换为:
<foo1 foo3="bar3" foo4="foo5bar5" foo2="bar2"/>
<foo>bar</foo>
这个怎么样?
class Hash
def to_xml
map do |k, v|
text = Hash === v ? v.to_xml : v
"<%s>%s</%s>" % [k, text, k]
end.join
end
end
h.to_xml
#=> "<foo>bar</foo><foo1><foo2>bar2</foo2><foo3>bar3</foo3><foo4><foo5>bar5</foo5></foo4></foo1>"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)