我必须在这里遗漏一些明显的东西,但我似乎无法使用以下代码:
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认为我的文件在看似有效的文件时是一个目录?
谢谢
答案 0 :(得分:1)
如果您在循环中放出xml_file
,我认为您会看到名为.
和..
的'文件'。在创建rexml对象之前,您需要一些逻辑来确保不要尝试将它们作为实际文件进行处理。
我会提供一个代码示例,但我不确定您的xml_files_dir
是什么类型的对象。如果你只是扔掉那里,我想你会看到我在说什么。