Parent

Class Index [+]

Quicksearch

Nokogiri::XML::SAX::Parser

 

This parser is a SAX style parser that reads it’s input as it deems necessary. The parser takes a Nokogiri::XML::SAX::Document, an optional encoding, then given an XML input, sends messages to the Nokogiri::XML::SAX::Document.

Here is an example of using this parser:

  # Create a subclass of Nokogiri::XML::SAX::Document and implement
  # the events we care about:
  class MyDoc < Nokogiri::XML::SAX::Document
    def start_element name, attrs = []
      puts "starting: #{name}"
    end

    def end_element name
      puts "ending: #{name}"
    end
  end

  # Create our parser
  parser = Nokogiri::XML::SAX::Parser.new(MyDoc.new)

  # Send some XML to the parser
  parser.parse(File.read(ARGV[0]))

For more information about SAX parsers, see Nokogiri::XML::SAX. Also see Nokogiri::XML::SAX::Document for the available events.

Constants

ENCODINGS

Encodinds this parser supports

Attributes

document[RW]

The Nokogiri::XML::SAX::Document where events will be sent.

encoding[RW]

The encoding beings used for this document.

Public Class Methods

new(doc = Nokogiri::XML::SAX::Document.new, encoding = 'UTF-8') click to toggle source

Create a new Parser with doc and encoding

    # File lib/nokogiri/xml/sax/parser.rb, line 70
70:         def initialize doc = Nokogiri::XML::SAX::Document.new, encoding = 'UTF-8'
71:           @encoding = encoding
72:           @document = doc
73:           @warned   = false
74:         end

Public Instance Methods

parse(thing, &block) click to toggle source
 

Parse given thing which may be a string containing xml, or an IO object.

    # File lib/nokogiri/xml/sax/parser.rb, line 79
79:         def parse thing, &block
80:           if thing.respond_to?(:read) && thing.respond_to?(:close)
81:             parse_io(thing, &block)
82:           else
83:             parse_memory(thing, &block)
84:           end
85:         end
parse_file(filename) click to toggle source
 

Parse a file with filename

     # File lib/nokogiri/xml/sax/parser.rb, line 98
 98:         def parse_file filename
 99:           raise ArgumentError unless filename
100:           raise Errno::ENOENT unless File.exists?(filename)
101:           raise Errno::EISDIR if File.directory?(filename)
102:           ctx = ParserContext.file filename
103:           yield ctx if block_given?
104:           ctx.parse_with self
105:         end
parse_io(io, encoding = 'ASCII') click to toggle source
 

Parse given io

    # File lib/nokogiri/xml/sax/parser.rb, line 89
89:         def parse_io io, encoding = 'ASCII'
90:           @encoding = encoding
91:           ctx = ParserContext.io(io, ENCODINGS[encoding])
92:           yield ctx if block_given?
93:           ctx.parse_with self
94:         end
parse_memory(data) click to toggle source
     # File lib/nokogiri/xml/sax/parser.rb, line 107
107:         def parse_memory data
108:           ctx = ParserContext.memory data
109:           yield ctx if block_given?
110:           ctx.parse_with self
111:         end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.