我是编程的初学者并编写了这个小程序:
Test.rb:
# encoding: utf-8
require 'open-uri'
require 'nokogiri'
def parse_file
doc = Nokogiri::XML(File.open("test.xml"))
parse_xml(doc)
end
def parse_xml(doc)
doc.root.elements.each do |node|
parse_tracks(node)
end
end
def parse_tracks(node)
if node.node_name.eql? 'kapitel'
puts 'New Kapitel'
end
end
我知道如何执行此代码:
ruby test.rb
但是如何调用def parse_file?
答案 0 :(得分:5)
只需在文件末尾添加您想要的任何内容即可。 Ruby脚本只是脚本,它们正在被解释:
…
end
parse_file # ⇐ HERE YOU GO
答案 1 :(得分:3)
您可以在test.rb
文件末尾调用该方法:
def parse_file
# ...
end
parse_file
用
运行它$ ruby test.rb
或保留文件,将其作为库并手动调用方法:
$ ruby -r test.rb -e "parse_file"
您可以在调用脚本时将其作为参数传递,而不是对文件路径进行硬编码。可以通过ARGV
数组访问参数:
def parse_file(file)
doc = Nokogiri::XML(File.open(file))
parse_xml(doc)
end
parse_file(ARGV.first)
现在您可以使用以下命令运行它:
$ ruby test.rb test.xml
另一个选择是使脚本可执行。添加shebang作为您文件的第一行:
#!/usr/bin/env ruby
并设置执行标志:
$ chmod +x test.rb
现在您可以使用以下命令运行它:
$ ./test.rb test.xml
答案 2 :(得分:2)
只需添加
parse_file
在ruby文件的末尾