49 lines
1.8 KiB
Ruby
49 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Nokogiri
|
|
module HTML4
|
|
###
|
|
# Nokogiri provides a SAX parser to process HTML4 which will provide HTML recovery
|
|
# ("autocorrection") features.
|
|
#
|
|
# See Nokogiri::HTML4::SAX::Parser for a basic example of using a SAX parser with HTML.
|
|
#
|
|
# For more information on SAX parsers, see Nokogiri::XML::SAX
|
|
#
|
|
module SAX
|
|
###
|
|
# This parser is a SAX style parser that reads its input as it deems necessary. The parser
|
|
# takes a Nokogiri::XML::SAX::Document, an optional encoding, then given an HTML input, sends
|
|
# messages to the Nokogiri::XML::SAX::Document.
|
|
#
|
|
# ⚠ This is an HTML4 parser and so may not support some HTML5 features and behaviors.
|
|
#
|
|
# Here is a basic usage example:
|
|
#
|
|
# class MyHandler < Nokogiri::XML::SAX::Document
|
|
# def start_element name, attributes = []
|
|
# puts "found a #{name}"
|
|
# end
|
|
# end
|
|
#
|
|
# parser = Nokogiri::HTML4::SAX::Parser.new(MyHandler.new)
|
|
#
|
|
# # Hand an IO object to the parser, which will read the HTML from the IO.
|
|
# File.open(path_to_html) do |f|
|
|
# parser.parse(f)
|
|
# end
|
|
#
|
|
# For more information on \SAX parsers, see Nokogiri::XML::SAX or the parent class
|
|
# Nokogiri::XML::SAX::Parser.
|
|
#
|
|
# Also see Nokogiri::XML::SAX::Document for the available events.
|
|
#
|
|
class Parser < Nokogiri::XML::SAX::Parser
|
|
# this class inherits its behavior from Nokogiri::XML::SAX::Parser, but note that superclass
|
|
# uses Nokogiri::ClassResolver to use HTML4::SAX::ParserContext as the context class for
|
|
# this class, which is where the real behavioral differences are implemented.
|
|
end
|
|
end
|
|
end
|
|
end
|