class Nokogiri::XML::SAX::Document

This class is used for registering types of events you are interested in handling. All of the methods on this class are available as possible events while parsing an XML document. To register for any particular event, just subclass this class and implement the methods you are interested in knowing about.

To only be notified about start and end element events, write a class like this:

class MyDocument < Nokogiri::XML::SAX::Document
  def start_element name, attrs = []
    puts "#{name} started!"
  end

  def end_element name
    puts "#{name} ended"
  end
end

You can use this event handler for any SAX style parser included with Nokogiri. See Nokogiri::XML::SAX, and Nokogiri::HTML4::SAX.

Public Instance Methods

cdata_block(string) click to toggle source

Called when cdata blocks are found string contains the cdata content

# File lib/nokogiri/xml/sax/document.rb, line 155
def cdata_block(string)
end
characters(string) click to toggle source

Characters read between a tag. This method might be called multiple times given one contiguous string of characters.

string contains the character data

# File lib/nokogiri/xml/sax/document.rb, line 131
def characters(string)
end
comment(string) click to toggle source

Called when comments are encountered string contains the comment data

# File lib/nokogiri/xml/sax/document.rb, line 137
def comment(string)
end
end_document() click to toggle source

Called when document ends parsing

# File lib/nokogiri/xml/sax/document.rb, line 79
def end_document
end
end_element(name) click to toggle source

Called at the end of an element name is the tag name

# File lib/nokogiri/xml/sax/document.rb, line 93
def end_element(name)
end
end_element_namespace(name, prefix = nil, uri = nil) click to toggle source

Called at the end of an element name is the element’s name prefix is the namespace prefix associated with the element uri is the associated namespace URI

# File lib/nokogiri/xml/sax/document.rb, line 120
def end_element_namespace(name, prefix = nil, uri = nil)
  ###
  # Deal with SAX v1 interface
  end_element([prefix, name].compact.join(":"))
end
error(string) click to toggle source

Called on document errors string contains the error

# File lib/nokogiri/xml/sax/document.rb, line 149
def error(string)
end
processing_instruction(name, content) click to toggle source

Called when processing instructions are found name is the target of the instruction content is the value of the instruction

# File lib/nokogiri/xml/sax/document.rb, line 162
def processing_instruction(name, content)
end
start_document() click to toggle source

Called when document starts parsing

# File lib/nokogiri/xml/sax/document.rb, line 74
def start_document
end
start_element(name, attrs = []) click to toggle source

Called at the beginning of an element

  • name is the name of the tag

  • attrs are an assoc list of namespaces and attributes, e.g.:

    [ ["xmlns:foo", "http://sample.net"], ["size", "large"] ]
    
# File lib/nokogiri/xml/sax/document.rb, line 87
def start_element(name, attrs = [])
end
start_element_namespace(name, attrs = [], prefix = nil, uri = nil, ns = []) click to toggle source

Called at the beginning of an element name is the element name attrs is a list of attributes prefix is the namespace prefix for the element uri is the associated namespace URI ns is a hash of namespace prefix:urls associated with the element

# File lib/nokogiri/xml/sax/document.rb, line 103
def start_element_namespace(name, attrs = [], prefix = nil, uri = nil, ns = []) # rubocop:disable Metrics/ParameterLists
  ###
  # Deal with SAX v1 interface
  name = [prefix, name].compact.join(":")
  attributes = ns.map do |ns_prefix, ns_uri|
    [["xmlns", ns_prefix].compact.join(":"), ns_uri]
  end + attrs.map do |attr|
    [[attr.prefix, attr.localname].compact.join(":"), attr.value]
  end
  start_element(name, attributes)
end
warning(string) click to toggle source

Called on document warnings string contains the warning

# File lib/nokogiri/xml/sax/document.rb, line 143
def warning(string)
end
xmldecl(version, encoding, standalone) click to toggle source

Called when an XML declaration is parsed

# File lib/nokogiri/xml/sax/document.rb, line 69
def xmldecl(version, encoding, standalone)
end