我正在使用带有Rails的Nokogiri 5.给出HTML表格中的一行,例如
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
我目前使用此代码将表格单元格数据提取为数组...
row_values = row.css('td, th').map{|str| str.text }
.map{|str| str.gsub(/[[:space:]]+/, ' ').gsub(/\A\p{Space}+|\p{Space}+\z/, '') }.join("\t")
其中“row”是我的表格行。问题是,我如何调整上面的内容,以便如果表格单元格包含一个colspan属性,我会为colspan占用的每一行添加额外的空白元素到我的数组中?例如,如果我的行是
<tr>
<td>1</td>
<td colspan="2">2</td>
<td>3</td>
</tr>
我的阵列将是
["1", "2", "", "3"]
注意我在那里有一个额外的“”,因为第二个表格单元格的“colspan”等于2.如果它是“3”,我的数组中会有两个额外的“”,依此类推。 / p>
答案 0 :(得分:0)
一种方法是添加空单元格:
doc.search('[colspan]').each{|td| td.after '<td></td>' * (td['colspan'].to_i - 1)}
现在你可以像以前那样做了