REXML считает файл каталогом и не создает REXML :: Document - PullRequest
0 голосов
/ 15 декабря 2010

Я, должно быть, здесь упускаю что-то очевидное, но я не могу заставить работать следующий код:

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

что я получаю:

/ Система / Библиотека / Каркасы / Ruby.framework / Версии / 1.8 / usr / lib / ruby ​​/ 1.8 / rexml / source.rb: 146: в `read ': есть каталог - / Path / To / My / XML / File /. (Errno :: EISDIR)

Почему REXML считает, что мой файл является каталогом, если он является допустимым файлом?

Спасибо

1 Ответ

1 голос
/ 15 декабря 2010

Если вы поместите xml_file в свой цикл, я думаю, что вы увидите «файлы» с именами . и ... Вам потребуется некоторая логика, чтобы убедиться, что вы не пытаетесь обработать их как настоящие файлы перед созданием объекта rexml.

Я бы предложил пример кода, но я не уверен, какой тип объекта у вас xml_files_dir. Если вы просто добавите туда путы, я думаю, вы поймете, о чем я говорю.

...