2010-12-15 5 views
0

ich hier offensichtlich etwas fehlt sein muss, aber ich kann nicht scheinen, den folgenden Code an die Arbeit:REXML denkt Datei ein Verzeichnis ist und keinen REXML erstellen :: Dokument

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 

, was ich Get ist:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rexml/source.rb:146:in `lesen ': Ist ein Verzeichnis -/Pfad/Zu/Mein/XML/Datei /. (Errno :: EISDIR)

Warum denkt REXML, dass meine Datei ein Verzeichnis ist, wenn es scheint, eine gültige Datei zu sein?

Dank

Antwort

1

Wenn Sie xml_file in der Schleife setzt heraus, denke ich, dass Sie ‚Dateien‘ sehen . und .. benannt. Sie benötigen eine gewisse Logik, um sicherzustellen, dass Sie diese nicht als tatsächliche Dateien verarbeiten, bevor Sie Ihr rexml-Objekt erstellen.

Ich würde ein Codebeispiel anbieten, aber ich bin nicht sicher, welche Art von Objekt Ihre xml_files_dir ist. Wenn du nur Puts hineinwirfst, denke ich, du wirst sehen, wovon ich rede.

+0

Ich hatte das '' vergessen. und '..' Verzeichniseinträge. Vielen Dank. – Thomas