1

从 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)

所以我收集到我需要使用字符串,但字符串似乎不起作用。由于我似乎无法在 Google 上找到任何运行 libxml-ruby 的示例,所以我很茫然。任何帮助将不胜感激,或者链接到任何在线示例,我可以在其中看到 libxml-ruby 如何用于创建 XML 文档。

libxml-ruby 1.1.3 ruby​​gems 1.3.1 ruby​​ 1.8.7

4

2 回答 2

4

似乎问题出在编码上。尝试XML::Encoding::UTF_8而不是“utf-8”。

于 2009-04-01T14:59:49.157 回答
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)
于 2010-01-18T17:04:43.593 回答