def nokogiri_process(content, selectors, namespaces, klass, type)
namespaces = namespaces.inject({}) { |new, (prefix, uri)| new.merge(prefix.to_s => uri) }
doc = content =~ /<html[\s>]/ ? klass.parse(content) : klass.fragment(content)
selectors.map { |sel| "descendant-or-self::#{sel}" }.each do |selector|
doc.xpath(selector, namespaces).each do |node|
if self.path_is_relativizable?(node.content)
node.content = relative_path_to(node.content)
end
end
end
result = doc.send("to_#{type}")
result.sub!(/(!DOCTYPE.+?)(>)/, '<\1>')
result
end