XPATH指数不同?

时间:2012-07-27 21:14:03

标签: ruby xpath nokogiri mechanize

我在Ruby上使用Mechanize,并在我的Ruby控制台中注意到以下内容:

1.9.3p194 :188 > testpage = Mechanize.new.get "http://www.sis.umd.edu/bin/soc?term=201208&crs=AGNR"
...
1.9.3p194 :184 > testpage.search("font[@face='arial,helvetica']").last.search("b[2]").text
 => "" 
1.9.3p194 :185 > testpage.search("font[@face='arial,helvetica']").last.search("b")[1].text
 => "Special Problems:\nSpecial Problems;"

为什么访问XPATH中的第二个b元素会产生不同的结果,而不是访问返回的所有Nokogiri b元素的第二个元素,从而产生不同的结果?

1 个答案:

答案 0 :(得分:3)

search("b[2]")表示相对于其的第二个b b    父元素。它将是一个NodeSet,它可能有多个元素。

search("b")[1]表示它找到的第二个b。它将是Node或nil。