0

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

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/File /。(Errno::EISDIR)

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

谢谢

4

1 回答 1

1

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

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

于 2010-12-15T16:23:04.893 回答