0
 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

問題なく動作します!!!

ここで何が起きてるの ?

4

1 に答える 1

1

最初のケースでは、次のように Nokogiri を呼び出すことになります

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

これは、あなたがやろうとしていることを達成するための正しい Ruby 構文ではありません。正しい方法は

newb = doc.xpath(*arrayofmanyxpaths).to_a
于 2009-11-27T12:35:17.057 に答える