2010-12-07 5 views
13

मैं Nokogiri के साथ एक xml दस्तावेज़ बनाया जाता है: Nokogiri::XML::Documentमैं कैसे Nokogiri सही एक्सएमएल एन्कोडिंग जोड़ने के लिए मिलता है?

मेरी फ़ाइल के हेडर <?xml version="1.0"?> है, लेकिन मैं <?xml version="1.0" encoding="UTF-8"?> के लिए उम्मीद थी। वहाँ किसी भी विकल्प मैं इतना एन्कोडिंग प्रकट होता है इस्तेमाल कर सकते हैं है?

उत्तर

25

आप Nokogiri XML Builder उपयोग कर रहे हैं मेरे लिए

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

? आप नए() विधि के लिए एक एन्कोडिंग विकल्प पारित कर सकते हैं:

नई (विकल्प = {})

एक नया बिल्डर वस्तु बनाएँ। विकल्प शीर्ष स्तर दस्तावेज़ जाता है कि निर्माण किया जा रहा करने के लिए भेजा जाता है।

उदाहरण के लिए एक विशेष एन्कोडिंग के साथ एक दस्तावेज का निर्माण:

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

इसके अलावा this page कहते हैं कि आप (बिल्डर का उपयोग करते समय नहीं) निम्न कर सकते हैं:

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

मुमकिन है आप को बदल सकता है ' ईयूसी-जेपी UTF-8 '' में।

+1

बहुत बहुत शुक्रिया, कि मैं के लिए क्या देख रहा था। – Luc

4

जब पार्स करने डॉक में आप इस तरह एन्कोडिंग सेट कर सकते हैं: कि रिटर्न <?xml version="1.0" encoding="UTF-8"?>

+0

वास्तव में, मैं एक मौजूदा फ़ाइल को पार्स नहीं करते हैं लेकिन Nokogiri :: XML का उपयोग एक नया :: Document.new बनाने – Luc

संबंधित मुद्दे