我有一个问题:
Firefox在<tbody>
之后添加<table>
是否存在。我对此没有任何问题。
Nokogiri没有添加它。
我需要Nokogiri模仿Firefox的行为。
如何将<table>
元素之后的tbody添加到给定的HTML页面?如果tbody已经存在,那么请转到下一个<table>
....直到所有<tbody>
标记由Nokogiri放置。
谢谢。
答案 0 :(得分:1)
这对我有用:
require 'nokogiri'
src = <<EOS
<html>
<body>
<table>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
</table>
</body>
</html>
EOS
doc = Nokogiri::HTML(src)
doc.xpath('//table').each do |table|
tbody = Nokogiri::XML::Node.new('tbody', doc)
tbody << table.children{|n| n.parent = tbody}
table << tbody
end
puts doc