2010-04-21 58 views
1

我有一個問題:引入nokogiri:添加<tbody>後<table>元素作爲Firefox沒有

火狐增加了<tbody>是否它的存在與否,<table>後。我對此沒有任何問題。 Nokogiri不添加它。

我需要Nokogiri來模擬Firefox的行爲。

如何將<table>元素後的tbody添加到給定的HTML頁面?如果tbody已經在那裏,然後繼續前進到<table> ....直到所有<tbody>標籤由Nokogiri放置。

謝謝。

+0

重複的問題?這似乎已在這裏得到解答:http://stackoverflow.com/questions/2680479/nokogiri-how-to-insert-tbody-tag-immediately-after-table-tag – atomicules 2010-05-26 14:12:50

回答

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 
相關問題