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

에게 붙여 복사!

여기 무슨 일입니까? 당신이

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

을 다음 이것은 당신이 뭘 하려는지 달성 할 수있는 권리 루비 구문 아니므로 노코 기리를 호출 결국 첫 번째 경우에

답변

1

. 올바른 방법은

newb = doc.xpath(*arrayofmanyxpaths).to_a 
입니다.