Hash.from_xml double escapes&

时间:2010-11-18 02:17:45

标签: ruby-on-rails

>> h={:title => "hi & mv288" }
=> {:title=>"hi & mv288"}
>> h.to_xml
=> "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<hash>\n  <title>hi &amp;amp; mv288</title>\n</hash>\n"
>> Hash.from_xml h.to_xml
=> {"hash"=>{"title"=>"hi & mv288"}}

如果您注意到第2行和第4行,则标题值中的&amp;字符变为&amp;后 一系列Hash.to_xml和from_xml方法调用。

有没有办法阻止Hash.from_xml将&amp;转换为&amp;。

1 个答案:

答案 0 :(得分:1)

我们将xml解析器切换到Nokogiri来解决此问题。

在您的environment.rb

中添加此行
ActiveSupport::XmlMini.backend = 'Nokogiri'

你必须安装nokogiri gem。如果你需要一个纯净的 nokogiri的java实现,看看这个。 https://github.com/tenderlove/nokogiri/wiki/pure-java-nokogiri-for-jruby

安装命令是,

gem install nokogiri --pre

您也可以使用LibXml作为XmlMiini.backend来解决此问题。