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上的第二天,所以我基本上是个白痴。