nokogiri:环绕孩子<table> </table>

时间:2010-04-23 05:27:40

标签: ruby nokogiri

我该怎么做?我需要在表标签之后放置tbody,基本上是为了模仿Firefox的行为。

我这样做了:

nodes = @doc.css "table > *"
wrapper = nodes.wrap("<tbody></tbody>")

感谢。

1 个答案:

答案 0 :(得分:1)

<tbody>应仅用于包装表的主体,因此假设您没有页眉或页脚,这将起作用:

require 'rubygems'
require 'nokogiri'

html = Nokogiri::HTML(DATA)
html.xpath('//table').each do |htable|
  tbody = html.create_element('tbody')
  tbody.children = htable.children
  htable.children = tbody
end

puts html.xpath('//table').to_s

__END__
<table border="0" cellspacing="5" cellpadding="5">
    <tr><td>Data</td></tr>
    <tr><td>Data2</td></tr>
    <tr><td>Data3</td></tr>
</table>

打印

<table border="0" cellspacing="5" cellpadding="5"><tbody>
<tr><td>Data</td></tr>
<tr><td>Data2</td></tr>
<tr><td>Data3</td></tr>
</tbody></table>