nokogiri&嵌套块

时间:2012-09-06 22:01:42

标签: ruby nokogiri

我正在尝试使用Nokogiri使用以下代码从HTML文件中提取数据:

@doc = Nokogiri::HTML("<table >
<tr BGCOLOR=\"#eeeeee\">
<td>SPILLED</td>
</tr>
<tr BGCOLOR=\"#eeeeee\">
<td >RUSTING</td>
</tr>
</table>")
@doc.xpath('//tr[@bgcolor="#eeeeee"]').each do |record|
    print record
    record.xpath("//td").each do |cell|
       print cell
    end
end

第一个块似乎按预期工作,每次通过record只包含其中一行。另一方面,第二个块正在访问两个行的<td>元素,这对我来说很神秘,因为record变量显示它在进入之前只有一行数据内部块。

当在内部区块中时,“记录”如何为两行提供数据?

1 个答案:

答案 0 :(得分:0)

想出来 - “td”之前的“//”会导致搜索返回到树上,高于记录变量中的值,即记录中的元素仍然与父元素有关系,等等消除“//”解决了它。