2010-11-18 17 views
1
>> 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"}} 

Wenn Sie Linie # 2 und # 4 bemerken, die &amp; Zeichen im Titel-Wert wurde & nach eine Reihe von Hash.to_xml und from_xml Methodenaufrufe.Hash.from_xml Doppel entkommt &

Gibt es eine Möglichkeit zu verhindern, Hash.from_xml &amp; in & zu konvertieren.

+0

In meinem lokalen Test 'Hash.from_xml h.to_xml' gibt mir das ursprüngliche Ergebnis' {: title => "hallo & mv288"} '...... – PeterWong

+0

emm ... Ich verwende jruby- 1.5.2/jdk1.6.0_21. Welche Version verwendest du? –

+0

und Schienen v2.3.9, Rubin 1.8.7 –

Antwort

1

Wir haben den XML-Parser auf Nokogiri umgestellt, um dieses Problem zu lösen.

diese Zeile in Ihrer environment.rb hinzufügen

ActiveSupport::XmlMini.backend = 'Nokogiri' 

Sie haben nokogiri Juwel obwohl installiert haben. Wenn Sie eine reine Java-Implementierung von Nokogiri benötigen, überprüfen Sie dies. https://github.com/tenderlove/nokogiri/wiki/pure-java-nokogiri-for-jruby

Der Installationsbefehl ist,

gem install nokogiri --pre 

Sie auch LibXml als XmlMiini.backend verwenden kann dieses Problem zu beheben.