0

我正在尝试使用 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变量显示它在进入内部块之前只有一行的数据。

当“记录”在内部块中时,它如何拥有两行的数据?

4

1 回答 1

0

弄明白了——“td”前面的“//”导致搜索回到树上,高于记录变量中的内容,即记录中的元素仍然与父元素有关系,等等。消除“//”解决了它。

于 2012-09-07T18:22:34.433 回答