Files
news.gitea.happylizard.me/bin/gems/nokogiri-1.18.3-x86_64-linux-gnu/lib/nokogiri/xml/sax.rb
T
pizza2d1 4cee170d66
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s
Add bin and edit workflow
2026-09-16 13:11:16 -06:00

55 lines
2.0 KiB
Ruby

# 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"