从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的例子,我不知所措。任何帮助都将非常感激,或链接到任何在线示例,我可以看到如何使用libxml-ruby创建XML文档。
libxml-ruby 1.1.3 rubygems 1.3.1 红宝石1.8.7
答案 0 :(得分:4)
似乎问题在于编码。请尝试XML::Encoding::UTF_8而不是“utf-8”。
答案 1 :(得分:0)
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)