Ruby: не могу сохранить документ с помощью libxml-ruby
Из документации по libxml-ruby API ( http://libxml.rubyforge.org/rdoc/index.html) в разделе LibXML::XML::Document я попытался сделать следующее:
filename = 'something.xml'
stats_doc = XML::Document.new()
stats_doc.root = XML::Node.new('root_node')
stats_doc.root << XML::Node.new('elem1')
stats_doc.save(filename, :indent => true, :encoding => 'utf-8')
... что привело к этой ошибке:
parse_stats.rb:26:in `save': can't convert String into Integer (TypeError)
(где последней строкой в блоке выше была строка 26).
Я попытался изменить имя файла на целое число, которое дало мне это:
parse_stats.rb:26:in `save': wrong argument type Fixnum (expected String) (TypeError)
Итак, я понял, что мне нужно использовать строку, но кажется, что строки не работают. Поскольку мне кажется, что я не могу найти какие-либо примеры libxml-ruby в действии от Google, я в растерянности. Буду очень признателен за любую помощь, или ссылки на любой онлайн-пример, где я могу увидеть, как libxml-ruby используется для создания документов XML.
libxml-ruby 1.1.3 rubygems 1.3.1 ruby 1.8.7
2 ответа
Кажется, проблема в кодировке. Попробуйте XML::Encoding::UTF_8 вместо "utf-8".
require 'rubygems'
require 'libxml'
filename = 'something.xml'
stats_doc = LibXML::XML::Document.new()
stats_doc.root = LibXML::XML::Node.new('root_node')
stats_doc.root << LibXML::XML::Node.new('elem1')
stats_doc.save(filename, :indent => true, :encoding => LibXML::XML::Encoding::UTF_8)