如何在Nokogiri中使用变量包含

时间:2015-07-10 06:27:26

标签: ruby xml nokogiri

我有一个XML文件,如:

<main>
  <key>xxx</key>
  <key>yyy</b>
  <key>zzz</key>
</main>

要检查XML是否有带有文本&#34; yyy&#34;的节点,我可以使用:

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 个答案:

答案 0 :(得分:1)

    CABasicAnimation *rotation;
    rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
    rotation.fromValue = [NSNumber numberWithFloat:0];
    rotation.toValue = [NSNumber numberWithFloat:(M_PI)];
    rotation.duration = 0.2; // Speed
    rotation.repeatCount = 1; // Repeat forever. Can be a finite number.
    [yourButton.layer addAnimation:rotation forKey:@"Spin"];
    [yourButton.layer setZPosition:100];
    yourButton.transform = CGAffineTransformMakeRotation(M_PI_2);

插入到

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

请注意没有引号。你想要这个:

"main/key:contains(yyy)"

或更漂亮

"main/key:contains(\"#{var}\")"
如果您不确定%Q{main/key:contains("#{var}")} 的内容,

和某些clever escaping也会有所帮助。