2010-12-07 33 views
13

J'ai créé un doc xml avec Nokogiri: Nokogiri::XML::DocumentComment obtenir que Nokogiri ajoute le bon codage XML?

L'en-tête de mon dossier est <?xml version="1.0"?> mais je vous attendez à avoir <?xml version="1.0" encoding="UTF-8"?>. Y a-t-il des options que je pourrais utiliser pour que l'encodage apparaisse?

Répondre

25

Utilisez-vous Nokogiri XML Builder? Vous pouvez passer une option d'encodage à la méthode nouvelle():

nouvelles (options = {})

Créer un nouvel objet Builder. Les options sont envoyées au document de niveau supérieur en cours de construction.

Construire un document avec un codage particulier par exemple:

Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml| 
    ... 
    end 

également this page dit que vous pouvez faire ce qui suit (quand ne pas utiliser Builder):

doc = Nokogiri.XML('<foo><bar /><foo>', nil, 'EUC-JP') 

On peut supposer que vous pourriez changer ' EUC-JP 'à' UTF-8 '.

+1

merci beaucoup, c'est ce que je cherchais. – Luc

4

Lorsque l'analyse du document, vous pouvez définir l'encodage comme ceci:

doc = Nokogiri::XML::Document.parse(xml_input, nil, "UTF-8") 

Pour moi qui retourne <?xml version="1.0" encoding="UTF-8"?>

+0

En fait, je n'analyse pas un fichier existant mais en crée un nouveau en utilisant Nokogiri :: XML :: Document.new – Luc