Nokogiri
предоставляет метод make
(Nokogiri::make
) в качестве удобного метода для создания DocumentFragment
, и код практически идентичен тому, что вы делаете сейчас:
def make input = nil, opts = {}, &blk
if input
Nokogiri::HTML.fragment(input).children.first
else
Nokogiri(&blk)
end
end
пример:
html = '<a href="https://example.com">Link</a>'
require 'nokogiri'
Nokogiri.make(html)
#=> #<Nokogiri::XML::Element:0x2afe5af3a04c name="a" attributes=
# [#<Nokogiri::XML::Attr:0x2afe5ac33efc name="href" value="https://example.com">]
# children=[#<Nokogiri::XML::Text:0x2afe5ac32408 "Link">]>
Другие опции включают
Nokogiri(html).first_element_child
Nokogiri.parse(html).first_element_child