Nokogiri で任意の node を削除する

やりたかったので覚書。
#remove メソッドで自身を削除することが出来ます。

コード

require "nokogiri"

html = <<EOS
<body>
  <div>
    <a></a>
  </div>
  <br>
  <a>
    <br>
  </a>
  <br>
  <div></div>
  <br>
</body>
EOS

doc = Nokogiri::HTML.parse(html).at(:body)

# 最初に見つかった <div> を消す
doc.at(:div).remove
puts doc
puts "-" * 20

# 全ての <br> を消す
doc.search(:br).map &:remove
puts doc

出力

<body>
  
  <br>
  <a>
    <br>
  </a>
  <br>
  <div></div>
  <br>
</body>
--------------------
<body>
  
  
  <a>
    
  </a>
  
  <div></div>
  
</body>