Помните, что DOM является иерархическим, поэтому вам необходимо удалить дочерние узлы:
Начиная с этого:
require 'nokogiri'
xml = <<EOT
<xml>
<a>some text
<b>
<c>more text</c>
</b>
</a>
</xml>
EOT
doc = Nokogiri::XML(xml)
Если вы не возражаете против этого:
doc.at('b').remove
doc.text #=> "\n some text\n \n \n"
Если вы не возражаете:
a_node = Nokogiri::XML.fragment(doc.at('a').to_xml)
a_node.at('b').remove
a_node.text #=> "some text\n \n "
Снимите заднюю каретку, и вам будет хорошо идти.