REXML认为file是一个目录,不会创建REXML :: Document

时间:2010-12-15 16:12:36

标签: ruby rexml

我必须在这里遗漏一些明显的东西,但我似乎无法使用以下代码:

xml_files_dir.each do | xml_file |
  file = File.new ( xml_files_dir + "/" + xml_file )
  puts File.file? file #true. so I know the file was created and is a file
  doc = REXML::Document.new file #error
end

我得到的是:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rexml/source.rb:146:in`read':是一个目录 - / Path / To / My / XML /文件/。 (错误:: EISDIR)

为什么REXML认为我的文件在看似有效的文件时是一个目录?

谢谢

1 个答案:

答案 0 :(得分:1)

如果您在循环中放出xml_file,我认为您会看到名为...的'文件'。在创建rexml对象之前,您需要一些逻辑来确保不要尝试将它们作为实际文件进行处理。

我会提供一个代码示例,但我不确定您的xml_files_dir是什么类型的对象。如果你只是扔掉那里,我想你会看到我在说什么。