SanitizeはNokogiriの上に構築されています:
Sanitizeは、壊れやすい正規表現の束ではなく、本格的なHTMLパーサーであるNokogiriに基づいているため、不正な形式または悪意のある形式のHTMLを問題なく処理し、常に有効なHTMLまたはXHTMLを出力します。
強調鉱山。したがって、答えは「いいえ」です。壊れたHTMLを修正する必要があります。
Nokogiriは、HTMLを修正して、正しく解釈され、DOMを構築できるようにする必要があります。次に、SanitizeはNokogiriが構築するDOMを変更し、最後に、変更されたDOMをシリアル化して、保存するHTMLを取得します。
Sanitizeソースをスキャンすると、すべてが通過し、Nokogiriまたはメソッドclean!
が使用されることがわかります。to_html
to_xhtml
if @config[:output] == :xhtml
output_method = fragment.method(:to_xhtml)
output_method_params[:save_with] = Nokogiri::XML::Node::SaveOptions::AS_XHTML
elsif @config[:output] == :html
output_method = fragment.method(:to_html)
else
raise Error, "unsupported output format: #{@config[:output]}"
end
result = output_method.call(output_method_params)
したがって、不良部分が削除されたHTMLだけでなく、NokogiriのバージョンのHTMLを取得できます。