如何在 Nokogiri 中使用变量包含
How to use variable in Nokogiri contains
我有一个 XML 文件,例如:
<main>
<key>xxx</key>
<key>yyy</b>
<key>zzz</key>
</main>
要检查 XML 是否有带有文本 "yyy" 的节点,我可以使用:
xml = Nokogiri::XML(file)
if xml.at('main/key:contains("yyy")')
#code will go here
end
但是如果文本值是一个变量,我该如何使用相同的语句呢?
注意:我尝试了以下解决方案但它不起作用:
var = "yyy"
if xml.at("main/key:contains(#{var})")
"main/key:contains(#{var})"
内插到
"main/key:contains(yyy)"
请注意没有引号。你想要这个:
"main/key:contains(\"#{var}\")"
或更漂亮
%Q{main/key:contains("#{var}")}
如果您不确定 var
的内容, 和一些 clever escaping 也会提供帮助。
我有一个 XML 文件,例如:
<main>
<key>xxx</key>
<key>yyy</b>
<key>zzz</key>
</main>
要检查 XML 是否有带有文本 "yyy" 的节点,我可以使用:
xml = Nokogiri::XML(file)
if xml.at('main/key:contains("yyy")')
#code will go here
end
但是如果文本值是一个变量,我该如何使用相同的语句呢? 注意:我尝试了以下解决方案但它不起作用:
var = "yyy"
if xml.at("main/key:contains(#{var})")
"main/key:contains(#{var})"
内插到
"main/key:contains(yyy)"
请注意没有引号。你想要这个:
"main/key:contains(\"#{var}\")"
或更漂亮
%Q{main/key:contains("#{var}")}
如果您不确定 var
的内容,和一些 clever escaping 也会提供帮助。