我肯定在这里遗漏了一些明显的东西,但我似乎无法让以下代码工作:
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//System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rexml/source.rb:146:in/。(Errno::EISDIR)
为什么REXML认为我的文件是一个目录,而它看起来是一个有效的文件?
谢谢
发布于 2010-12-16 00:23:05
如果你在循环中放入xml_file,我想你会看到名为.和..的“文件”。在创建rexml对象之前,您需要一些逻辑来确保您不会尝试将这些文件作为实际文件进行处理。
我可以提供一个代码示例,但是我不确定您的xml_files_dir是什么类型的对象。如果你只是在那里抛出一个puts,我想你会明白我在说什么。
https://stackoverflow.com/questions/4452130
复制相似问题