2017-10-16 7 views
0

Les retours chariot (utilisés dans les fenêtres nouvelles lignes) sont remplacées à 
 par nokogiriremplacement de retour de chariot à par Nokogiri

xml = Nokogiri::XML "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<a>ABC</a>\n" 
xml.xpath('a').first.content = "testing\r\nnewlines"      
> "testing\r\nnewlines" 
xml.to_s 
> "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<a>testing&#13;\nnewlines</a>\n" 

1) Pourquoi Nokogiri fait ça?

2) Y a-t-il un moyen d'éviter de le faire?

Répondre

1

C'est parce qu'un bogue sur libxml2 qui échappe de manière incorrecte \r quand ne devrait pas faire comme est une valeur XML valide.

Plus d'informations ici

https://github.com/sparklemotion/nokogiri/issues/1356

La seule solution que je peux voir maintenant faire

.gsub("&#13;", "\r")