2010-04-02 14 views
5

Comment utiliser Nokogiri avec des entités html (comme les trémas allemands) intacte?Comment faire pour que Nokogiri renvoie de manière transparente les entités html non codées?

i.e. .:

# this is fine 
node = Nokogiri::HTML.fragment('<p>&ouml;</p>') 
node.to_s # => '<p>&ouml;</p>' 

# this is not 
node = Nokogiri::HTML.fragment('<p>ö</p>') 
node.to_s # => '<p>&ouml;</p>' 

# this is what I need 
node = Nokogiri::HTML.fragment('<p>ö</p>') 
node.to_s # => '<p>ö</p>' 

J'ai essayé de jouer avec les deux parse_options et: options de save_with mais n'a pas pu trouver un moyen d'avoir Nokogiri juste de manière transparente se comportent comme ci-dessus.

Des pointeurs?

Répondre

11

Ok, ma question a reçu une réponse par Aaron via twitter/gist:

require 'rubygems' 
require 'nokogiri' 

doc = Nokogiri::HTML::Document.new 
doc.encoding = 'UTF-8' 

# We added a contextual fragment method for the 1.4.2 release. This *might* 
# work in 1.4.1. If you want to mess with 1.4.2, build from my github, or 
# grab one of our nightly builds: 
# 
# $ sudo gem install nokogiri -s http://tenderlovemaking.com/ 
# 
# Also, libxml2 had a bug with encoding when handling UTF-8 fragments, so I 
# suggest you also upgrade to libxml2 2.7.7. 
# 
# Hope that helps! 
puts doc.fragment('<p>ö</p>') 
+0

texte Tweet: Vous pourriez avoir à attendre pour cette 1.4.2, mais il est possible. http://bit.ly/cRygHP –