Ruby: не могу сохранить документ с помощью libxml-ruby - PullRequest
1 голос
/ 01 апреля 2009

Из документации API libxml-ruby (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 рубин 1.8.7

Ответы [ 2 ]

4 голосов
/ 01 апреля 2009

Похоже, проблема в кодировке. Попробуйте XML :: Encoding :: UTF_8 вместо "utf-8".

0 голосов
/ 18 января 2010
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)
...