如何使用Nokogiri将嵌套的哈希转换为XML [英] How to convert a nested hash into XML using Nokogiri
本文介绍了如何使用Nokogiri将嵌套的哈希转换为XML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有很多级别的嵌套哈希,例如:
I have many levels of a nested hash like:
{ :foo => 'bar', :foo1 => { :foo2 => 'bar2', :foo3 => 'bar3', :foo4 => { :foo5 => 'bar5' }}}
如何将它们转换为XML?
How can I convert them into an XML like this?:
<foo>bar</foo>
<foo1>
<foo2>bar2</foo2>
<foo3>bar3</foo3>
<foo4>
<foo5>bar5</foo5>
</foo4>
</foo1>
我尝试了xml.send
方法,但是它将上面的嵌套哈希转换为:
I tried the xml.send
method, but it converts the above nested hash to:
<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>"
这篇关于如何使用Nokogiri将嵌套的哈希转换为XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文