如何使用 ARGV[1] 中的值搜索 XML 文件

How to search a XML file using the value in ARGV[1]

我正在尝试使用 ARGV 数组中的值搜索文件。但是,使用 doc.at 无效。我已将变量关键字设置为 ARGV[1],当给定一个打印到控制台的值时,但是当我尝试将变量文本放入控制台时,它显示为空白。

require 'nokogiri'

input = ARGV[0]
keyword = ARGV[1]

case input

when input = "list"
 doc = File.open("emails.xml") { |f| Nokogiri::XML(f) }
 text = doc.at('record:contains("{keyword}")')
 puts text
 puts keyword



else 
puts "no"

end

您的字符串插值错误。 将其更改为:

doc.at("record:contains('#{keyword}')")

从双 " 开始并用 #{}

进行插值