我正在尝试使用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
变量显示它在进入之前只有一行数据内部块。
当在内部区块中时,“记录”如何为两行提供数据?
答案 0 :(得分:0)
想出来 - “td”之前的“//”会导致搜索返回到树上,高于记录变量中的值,即记录中的元素仍然与父元素有关系,等等消除“//”解决了它。