Ruby 诺科吉里酒店;嵌套块

Ruby 诺科吉里酒店;嵌套块,ruby,nokogiri,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[@

我尝试使用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
@doc=Nokogiri::HTML(“
溢出来
生锈
")
@doc.xpath('//tr[@bgcolor=“#eeeeee”]”)。每个do都记录|
打印记录
xpath(“//td”)。每个do |单元格|
打印单元
结束
结束
第一个块似乎按预期工作,每次通过
record
只包含一行。另一方面,第二个块是访问两行的
元素,这让我感到困惑,因为
记录
变量显示它在进入内部块之前只有一行的数据


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

解决了这个问题——“td”前面的“/”会导致搜索返回到树上,在记录变量的上面,也就是说,记录中的元素仍然与父元素有关系,等等。消除“/”解决了。

可能重复:@shioyama你是对的。对于OP:从单元格选择器中删除前导斜杠,您将得到预期的结果。