2015-07-10 58 views
0

我有這樣一個XML文件:如何引入nokogiri使用變量包含

<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})") 

回答

1
"main/key:contains(#{var})" 

插向

"main/key:contains(yyy)" 

注意沒有引號的。你想這樣的:

"main/key:contains(\"#{var}\")" 

以上嬌滴滴

%Q{main/key:contains("#{var}")} 

有的clever escaping也將幫助,如果你不能確定的var內容。

+0

@ Amadan謝謝!!!它的工作,你的解釋幫助我更好地理解。 – twinkle