Ruby 诺科吉里酒店;嵌套块
我尝试使用Nokogiri从HTML文件中提取数据,代码如下: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[@
@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:从单元格选择器中删除前导斜杠,您将得到预期的结果。