2009-11-27 39 views
0
lotofxpath = arrayofmanyxpaths.map{|s| "\"" + s + "\""}.join(",") 
puts lotofxpath #=> "/html/body/a[1]", "/html/body/a[2]" 

newb = doc.xpath(lotofxpath).to_a 

这将无法正常工作,并抱怨无效的xpath。nokogiri:无效的xpath?

然而,复制粘贴输出字符串

newb = doc.xpath("/html/body/a[1]", "/html/body/a[2]").to_a 

没有问题会工作!

这里发生了什么事?

回答

1

在你最终调用引入nokogiri如下

newb = doc.xpath("\"/html/body/a[1]\", \"/html/body/a[2]\"").to_a 

,这是不正确的Ruby语法来完成你正在尝试做的第一案。 正确的方法是

newb = doc.xpath(*arrayofmanyxpaths).to_a