Нокогири дает вам возможность поиграть с текстовыми узлами, то есть с содержимым между узлами:
require 'nokogiri'
doc = Nokogiri::HTML(
'<p>this
<b>text to remove</b>
text
</p>')
doc.at('b').remove
doc.at('p').text = doc.at('p').text.gsub(/\n\s*\n/, "\n")
puts doc.text
Возврат каретки, встроенный в HTML, генерирующий отдельные строки в файле, фактически находится во промежуточных текстовых узлах. Таким образом, после удаления тега вы получите символы «\n
», разделенные пробелами, в текстовых узлах. Быстрый gsub
может очистить их.