0

我在 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;"

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

4

1 回答 1

3

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

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

于 2012-07-28T01:22:46.300 回答