我正在尝试遍历表行,并且每行都是一个数组,并且在其中,将单个单元格的所有文本作为第一个数组中的数组。所以这是我想要的输出:
[
[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"
]
]
答案 0 :(得分:0)
开始新行时重新初始化cells
:
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