This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Nokogiri
|
||||
module XML
|
||||
###
|
||||
# SAX Parsers are event-driven parsers.
|
||||
#
|
||||
# Two SAX parsers for XML are available, a parser that reads from a string or IO object as it
|
||||
# feels necessary, and a parser that you explicitly feed XML in chunks. If you want to let
|
||||
# Nokogiri deal with reading your XML, use the Nokogiri::XML::SAX::Parser. If you want to have
|
||||
# fine grain control over the XML input, use the Nokogiri::XML::SAX::PushParser.
|
||||
#
|
||||
# If you want to do SAX style parsing of HTML, check out Nokogiri::HTML4::SAX.
|
||||
#
|
||||
# The basic way a SAX style parser works is by creating a parser, telling the parser about the
|
||||
# events we're interested in, then giving the parser some XML to process. The parser will notify
|
||||
# you when it encounters events you said you would like to know about.
|
||||
#
|
||||
# To register for events, subclass Nokogiri::XML::SAX::Document and implement the methods for
|
||||
# which you would like notification.
|
||||
#
|
||||
# For example, if I want to be notified when a document ends, and when an element starts, I
|
||||
# would write a class like this:
|
||||
#
|
||||
# class MyHandler < Nokogiri::XML::SAX::Document
|
||||
# def end_document
|
||||
# puts "the document has ended"
|
||||
# end
|
||||
#
|
||||
# def start_element name, attributes = []
|
||||
# puts "#{name} started"
|
||||
# end
|
||||
# end
|
||||
#
|
||||
# Then I would instantiate a SAX parser with this document, and feed the parser some XML
|
||||
#
|
||||
# # Create a new parser
|
||||
# parser = Nokogiri::XML::SAX::Parser.new(MyHandler.new)
|
||||
#
|
||||
# # Feed the parser some XML
|
||||
# parser.parse(File.open(ARGV[0]))
|
||||
#
|
||||
# Now my document handler will be called when each node starts, and when then document ends. To
|
||||
# see what kinds of events are available, take a look at Nokogiri::XML::SAX::Document.
|
||||
#
|
||||
module SAX
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
require_relative "sax/document"
|
||||
require_relative "sax/parser_context"
|
||||
require_relative "sax/parser"
|
||||
require_relative "sax/push_parser"
|
||||
Reference in New Issue
Block a user