Pregunta

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

 newb = doc.xpath(lotofxpath).to_a

esto no funcionará, y se quejan de xpath no válido.

sin embargo, copiando pegando la cadena de salida

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

funcionará sin problemas!

¿Qué está pasando aquí?

¿Fue útil?

Solución

En el primer caso, terminas llamando a Nokogiri de la siguiente manera

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

y esta no es la sintaxis de Ruby correcta para lograr lo que estás tratando de hacer. El camino correcto es

newb = doc.xpath(*arrayofmanyxpaths).to_a
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top