Ruby 遍历表数据并用行和td值填充数组

Ruby 遍历表数据并用行和td值填充数组,ruby,nokogiri,Ruby,Nokogiri,我试图遍历一个表中的行,让每一行都成为一个数组,在这个数组中,每个单元格的所有文本都作为第一个数组中的一个数组。这是我想要的输出: [ [row1][ [td element1 from row 1], [td element2 from row 1] ], [row2][ [td element1 from row 2], [td element2 fro

我试图遍历一个表中的行,让每一行都成为一个数组,在这个数组中,每个单元格的所有文本都作为第一个数组中的一个数组。这是我想要的输出:

[
    [row1][
              [td element1 from row 1],
              [td element2 from row 1]  
    ],
    [row2][
              [td element1 from row 2],
              [td element2 from row 2]

    ]
]
这是我的密码:

           page = Nokogiri::HTML(open(url))
            table = page.at('table#ctl00_MainContent_gvSearchResults')
            rows = Array.new
            rowCells = Array.new
            cells = Array.new

            table.search('tr').each do |tr|
                tr.search('td').each do |cell|
                    cells.push(cell.text.gsub(/\r\n?/, "").strip)

                end
                rowCells.push(cells)
            end

            p rowCells
这将返回以下结果,其中值是所有行中的td元素。它几乎是正确的,因为它为每一行返回一个数组,但在每一行的数组中,它放置所有行的所有单元格,因此每一行数组具有相同的值

[
    [0] [
            [0] "value1",
            [1] "value2" 
        ]
]
开始新行时重新初始化单元格:

page = Nokogiri::HTML(open(url))
table = page.at('table#ctl00_MainContent_gvSearchResults')
rowCells = Array.new

table.search('tr').each do |tr|
  cells = Array.new
  tr.search('td').each do |cell|
    cells.push(cell.text.gsub(/\r\n?/, "").strip)
  end
  rowCells.push(cells)
end

p rowCells

在一行的每次迭代之后,您都需要重新初始化单元格。您能告诉我具体怎么做吗?这就像我在ruby上的第二天,所以我基本上是个白痴。