客观的 :
将 XML 转换为 ruby Hash ,包含所有节点和属性值
我尝试了什么:
xml =
'<test id="appears">
<comment id="doesnt appear">
it worked
</comment>
<comment>
see!
</comment>
<comment />
</test>'
hash = Hash.from_xml(xml)
现在我得到这个哈希值
#=>{"test"=>{"id"=>"appears", "comment"=>["it worked", "see!", nil]}}
请注意第一个注释元素上的 id 属性没有出现。
如何解决这个问题?
主动支持 XMLConverter 类存在问题
请将以下代码添加到任何初始化程序文件中。
module ActiveSupport
class XMLConverter
private
def become_content?(value)
value['type'] == 'file' || (value['__content__'] && (value.keys.size == 1 && value['__content__'].present?))
end
end
end
它会给你如下的输出。
Ex 输入 XML
xml = '<album>
<song-name type="published">Do Re Mi</song-name>
</album>'
Hash.from_xml(xml)
输出将是
{"album"=>{"song_name"=>{"type"=>"published", "__content__"=>"Do Re Mi"}}}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)