Ruby 如何使用nokogiri循环表并将行转换为对象

Ruby 如何使用nokogiri循环表并将行转换为对象,ruby,nokogiri,loops,Ruby,Nokogiri,Loops,我想使用nokogiri循环一个html并创建一个对应于每一行的对象。我能够定义根XPath,我希望填充对象变量的数据来自该根XPath,但我不知道如何将它们作为对象分组 我的代码如下。我知道它不起作用,但我不知道该朝哪个方向去做 需要“rubygems” 需要“nokogiri” 解析(代码的主要问题似乎是您传递的字符串('K1',K2',K3')模糊地类似于变量的名称,而不是变量本身(K1,K2,K3)。但是,您可以更简洁地表示为: doc.search('table > tr').e

我想使用nokogiri循环一个html并创建一个对应于每一行的对象。我能够定义根XPath,我希望填充对象变量的数据来自该根XPath,但我不知道如何将它们作为对象分组

我的代码如下。我知道它不起作用,但我不知道该朝哪个方向去做

需要“rubygems” 需要“nokogiri”


解析(代码的主要问题似乎是您传递的字符串(
'K1',K2',K3'
)模糊地类似于变量的名称,而不是变量本身(
K1,K2,K3
)。但是,您可以更简洁地表示为:

doc.search('table > tr').each do |row|
  properties = row.search('td/text()').collect {|text| text.to_s}
  list.append Post.new(*properties)
end

这只是在每一行上循环,并使用行中每个td的文本内容创建一个Post。

代码的主要问题似乎是您传递的字符串(
'K1',K2',K3'
)模糊地类似于变量的名称,而不是变量本身(
K1,K2,K3
)。但是,您可以更简洁地表示为:

doc.search('table > tr').each do |row|
  properties = row.search('td/text()').collect {|text| text.to_s}
  list.append Post.new(*properties)
end
这只是在每一行上循环,并使用行中每个td的文本内容创建一个Post

doc.search('table > tr').each do |row|
  properties = row.search('td/text()').collect {|text| text.to_s}
  list.append Post.new(*properties)
end