2010-11-18 4 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"}} 

Si vous remarquez la ligne n ° 2 et n ° 4, les &amp; caractères de la valeur du titre est devenu & après une série d'appels de méthode Hash.to_xml et from_xml.Hash.from_xml deux échappe &

Y at-il un moyen d'empêcher Hash.from_xml de convertir &amp; en &.

+0

Dans mon test local, 'Hash.from_xml h.to_xml' me donne le résultat original' {: title => "salut & mv288"} '...... – PeterWong

+0

emm ... J'utilise jruby- 1.5.2/jdk1.6.0_21. Quelle version utilisez-vous? –

+0

et rails v2.3.9, rubis 1.8.7 –

Répondre

1

Nous avons remplacé l'analyseur XML par Nokogiri pour résoudre ce problème.

Ajoutez cette ligne dans votre environment.rb

ActiveSupport::XmlMini.backend = 'Nokogiri' 

Vous devez avoir installé nokogiri petit bijou bien. Si vous avez besoin d'une implémentation Java pure de , vérifiez cela. https://github.com/tenderlove/nokogiri/wiki/pure-java-nokogiri-for-jruby

La commande d'installation est,

gem install nokogiri --pre 

Vous pouvez également utiliser LibXml comme XmlMiini.backend pour résoudre ce problème.

Questions connexes