нокогири: неверный xpath?

 lotofxpath = arrayofmanyxpaths.map{|s| "\"" + s + "\""}.join(",")
 puts lotofxpath #=> "/html/body/a[1]", "/html/body/a[2]"

 newb = doc.xpath(lotofxpath).to_a

это не сработает и будет жаловаться на неверный xpath.

однако копирование вставки выходной строки

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

будет работать без проблем!!!

что здесь происходит ?


person joeyaa    schedule 27.11.2009    source источник


Ответы (1)


В первом случае вы в конечном итоге вызываете Нокогири следующим образом:

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

и это не правильный синтаксис Ruby для выполнения того, что вы пытаетесь сделать. Правильный путь

newb = doc.xpath(*arrayofmanyxpaths).to_a
person Simone Carletti    schedule 27.11.2009