Class: Nokogiri::XML::SAX::Document

Inherits:
Object
  • Object
show all
Defined in:
lib/nokogiri/xml/sax/document.rb

Overview

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.

Instance Method Summary collapse

Instance Method Details

#cdata_block(string) ⇒ Object

Called when cdata blocks are found string contains the cdata content



154
155
# File 'lib/nokogiri/xml/sax/document.rb', line 154

def cdata_block string
end

#characters(string) ⇒ Object

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

string contains the character data



130
131
# File 'lib/nokogiri/xml/sax/document.rb', line 130

def characters string
end

#comment(string) ⇒ Object

Called when comments are encountered string contains the comment data



136
137
# File 'lib/nokogiri/xml/sax/document.rb', line 136

def comment string
end

#end_documentObject

Called when document ends parsing



78
79
# File 'lib/nokogiri/xml/sax/document.rb', line 78

def end_document
end

#end_element(name) ⇒ Object

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



92
93
# File 'lib/nokogiri/xml/sax/document.rb', line 92

def end_element name
end

#end_element_namespace(name, prefix = nil, uri = nil) ⇒ Object

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



119
120
121
122
123
# File 'lib/nokogiri/xml/sax/document.rb', line 119

def end_element_namespace name, prefix = nil, uri = nil
  ###
  # Deal with SAX v1 interface
  end_element [prefix, name].compact.join(':')
end

#error(string) ⇒ Object

Called on document errors string contains the error



148
149
# File 'lib/nokogiri/xml/sax/document.rb', line 148

def error string
end

#processing_instruction(name, content) ⇒ Object

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



161
162
# File 'lib/nokogiri/xml/sax/document.rb', line 161

def processing_instruction name, content
end

#start_documentObject

Called when document starts parsing



73
74
# File 'lib/nokogiri/xml/sax/document.rb', line 73

def start_document
end

#start_element(name, attrs = []) ⇒ Object

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


86
87
# File 'lib/nokogiri/xml/sax/document.rb', line 86

def start_element name, attrs = []
end

#start_element_namespace(name, attrs = [], prefix = nil, uri = nil, ns = []) ⇒ Object

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



102
103
104
105
106
107
108
109
110
111
112
# File 'lib/nokogiri/xml/sax/document.rb', line 102

def start_element_namespace name, attrs = [], prefix = nil, uri = nil, ns = []
  ###
  # Deal with SAX v1 interface
  name = [prefix, name].compact.join(':')
  attributes = ns.map { |ns_prefix,ns_uri|
    [['xmlns', ns_prefix].compact.join(':'), ns_uri]
  } + attrs.map { |attr|
    [[attr.prefix, attr.localname].compact.join(':'), attr.value]
  }
  start_element name, attributes
end

#warning(string) ⇒ Object

Called on document warnings string contains the warning



142
143
# File 'lib/nokogiri/xml/sax/document.rb', line 142

def warning string
end

#xmldecl(version, encoding, standalone) ⇒ Object

Called when an XML declaration is parsed



68
69
# File 'lib/nokogiri/xml/sax/document.rb', line 68

def xmldecl version, encoding, standalone
end