0

ODT ファイルの内部にアクセスしようとしています。IRB で実行すると問題なく動作しますが、それを実行するためのスクリプトを作成しようとすると、次のエラーで失敗します。

./replace_odf.rb:3:in `require': no such file to load -- rubygems (LoadError)
from ./replace_odf.rb:3

IRB を実行したときのコードは次のとおりです。最後の方でわかるように、ファイルにアクセスできます。

irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'zip/zip'
=> true
irb(main):003:0> odt = Zip::ZipFile.open('java.odt')
=> java.odt
irb(main):004:0> odt.entries.each do |entry|
irb(main):005:1*   puts entry.name
irb(main):006:1> end
mimetype
Configurations2/statusbar/
Configurations2/accelerator/current.xml
Configurations2/floater/
... etc

これが私のスクリプトコードです。実行すると、上記のエラーが表示されます。

require 'rubygems'
require 'zip/zip'
require 'rexml/document'

odt = Zip::ZipFile.open('java.odt')
file1 = odt.entries[0]

odt.entries.each do |entry|
puts entry.name if entry.name =~ /\.xml$/
end

puts odt.read("mimetype")
xml = odt.read("content.xml")
doc = REXML::Document.new(xml)
doc.root.each_element do |o|
    o.each_element do |i|
        puts i
    end
end
4

0 に答える 0