2009-11-27 35 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