【发布时间】:2014-01-10 02:24:12
【问题描述】:
我正在尝试遍历表格行并将每一行作为一个数组,并在其中将单个单元格的所有文本作为第一个数组中的数组。所以这是我想要的输出:
[
[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"
]
]
【问题讨论】:
-
您需要在每行迭代后重新初始化
cells。 -
你能告诉我具体怎么做吗?这就像我在 ruby 上的第二天,所以我基本上是个白痴。