Class: Nokogiri::XML::SAX::Parser

### Home Classes Methods

### In Files

- lib/nokogiri/xml/sax/parser.rb
- ext/nokogiri/html_sax_parser_context.c

### Parent

Object

### Namespace

- CLASS Nokogiri::XML::SAX::Parser::Attribute

### Methods

- ::new
- #parse
- #parse_file
- #parse_io
- #parse_memory

### Files

- CHANGELOG.ja.rdoc
- CHANGELOG.rdoc
- C_CODING_STYLE.rdoc
- Manifest.txt
- README.ja.rdoc
- README.rdoc

### Class/Module Index

Quicksearch

- Nokogiri
- Nokogiri::CSS
- Nokogiri::CSS::Node
- Nokogiri::CSS::Parser
- Nokogiri::CSS::SyntaxError
- Nokogiri::CSS::Tokenizer
- Nokogiri::CSS::Tokenizer::ScanError
- Nokogiri::Decorators
- Nokogiri::Decorators::Slop
- Nokogiri::EncodingHandler
- Nokogiri::HTML
- Nokogiri::HTML::Builder
- Nokogiri::HTML::Document
- Nokogiri::HTML::Document::EncodingReader
- Nokogiri::HTML::Document::EncodingReader::JumpSAXHandler
- Nokogiri::HTML::DocumentFragment
- Nokogiri::HTML::ElementDescription
- Nokogiri::HTML::EntityDescription
- Nokogiri::HTML::EntityLookup
- Nokogiri::HTML::SAX
- Nokogiri::HTML::SAX::Parser
- Nokogiri::HTML::SAX::ParserContext
- Nokogiri::HTML::SAX::PushParser
- Nokogiri::SyntaxError
- Nokogiri::XML
- Nokogiri::XML::Attr
- Nokogiri::XML::AttributeDecl
- Nokogiri::XML::Builder
- Nokogiri::XML::CDATA
- Nokogiri::XML::CharacterData
- Nokogiri::XML::Comment
- Nokogiri::XML::DTD
- Nokogiri::XML::Document
- Nokogiri::XML::DocumentFragment
- Nokogiri::XML::Element
- Nokogiri::XML::ElementContent
- Nokogiri::XML::ElementDecl
- Nokogiri::XML::EntityDecl
- Nokogiri::XML::EntityReference
- Nokogiri::XML::Namespace
- Nokogiri::XML::Node
- Nokogiri::XML::Node::SaveOptions
- Nokogiri::XML::NodeSet
- Nokogiri::XML::Notation
- Nokogiri::XML::PP
- Nokogiri::XML::PP::CharacterData
- Nokogiri::XML::PP::Node
- Nokogiri::XML::ParseOptions
- Nokogiri::XML::ProcessingInstruction
- Nokogiri::XML::Reader
- Nokogiri::XML::RelaxNG
- Nokogiri::XML::SAX
- Nokogiri::XML::SAX::Document
- Nokogiri::XML::SAX::Parser
- Nokogiri::XML::SAX::Parser::Attribute
- Nokogiri::XML::SAX::ParserContext
- Nokogiri::XML::SAX::PushParser
- Nokogiri::XML::Schema
- Nokogiri::XML::SyntaxError
- Nokogiri::XML::Text
- Nokogiri::XML::XPath
- Nokogiri::XML::XPath::SyntaxError
- Nokogiri::XML::XPathContext
- Nokogiri::XSLT
- Nokogiri::XSLT::Stylesheet
- XSD
- XSD::XMLParser
- XSD::XMLParser::Nokogiri
- Object

No matching classes.

# 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.open(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
    def initialize doc = Nokogiri::XML::SAX::Document.new, encoding = 'UTF-8'
      check_encoding(encoding)
      @encoding = encoding
      @document = doc
      @warned   = false
    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 80
    def parse thing, &block
      if thing.respond_to?(:read) && thing.respond_to?(:close)
        parse_io(thing, &block)
      else
        parse_memory(thing, &block)
      end
    end

parse_file(filename) click to toggle source

Parse a file with `filename`

    # File lib/nokogiri/xml/sax/parser.rb, line 100
    def parse_file filename
      raise ArgumentError unless filename
      raise Errno::ENOENT unless File.exists?(filename)
      raise Errno::EISDIR if File.directory?(filename)
      ctx = ParserContext.file filename
      yield ctx if block_given?
      ctx.parse_with self
    end

parse_io(io, encoding = 'ASCII') click to toggle source

Parse given `io`

    # File lib/nokogiri/xml/sax/parser.rb, line 90
    def parse_io io, encoding = 'ASCII'
      check_encoding(encoding)
      @encoding = encoding
      ctx = ParserContext.io(io, ENCODINGS[encoding])
      yield ctx if block_given?
      ctx.parse_with self
    end

parse_memory(data) click to toggle source

    # File lib/nokogiri/xml/sax/parser.rb, line 109
    def parse_memory data
      ctx = ParserContext.memory data
      yield ctx if block_given?
      ctx.parse_with self
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.