Nokogiri::XML::SAX::PushParser

class Nokogiri::XML::SAX::PushParser

Parent:
Object

PushParser can parse a document that is fed to it manually. It must be given a SAX::Document object which will be called with SAX events as the document is being parsed.

Calling #<< writes XML to the parser, calling any SAX callbacks it can.

#finish tells the parser that the document is finished and calls the end_document SAX method.

Example:

parser = PushParser.new(Class.new(XML::SAX::Document) {
  def start_document
    puts "start document called"
  end
}.new)
parser << "<div>hello<"
parser << "/div>"
parser.finish

Attributes

document[RW]

The Nokogiri::XML::SAX::Document on which the PushParser will be operating

Public Class Methods

new(doc = XML::SAX::Document.new, file_name = nil, encoding = 'UTF-8') Show source

Create a new PushParser with doc as the SAX Document, providing an optional file_name and encoding

# File lib/nokogiri/xml/sax/push_parser.rb, line 34
def initialize(doc = XML::SAX::Document.new, file_name = nil, encoding = 'UTF-8')
  @document = doc
  @encoding = encoding
  @sax_parser = XML::SAX::Parser.new(doc)

  ## Create our push parser context
  initialize_native(@sax_parser, file_name)
end

Public Instance Methods

<<(chunk, last_chunk = false)
Alias for: write
finish() Show source

Finish the parsing. This method is only necessary for Nokogiri::XML::SAX::Document#end_document to be called.

# File lib/nokogiri/xml/sax/push_parser.rb, line 54
def finish
  write '', true
end
options() Show source
static VALUE get_options(VALUE self)
{
  xmlParserCtxtPtr ctx;
  Data_Get_Struct(self, xmlParserCtxt, ctx);

  return INT2NUM(ctx->options);
}
options=(p1) Show source
static VALUE set_options(VALUE self, VALUE options)
{
  xmlParserCtxtPtr ctx;
  Data_Get_Struct(self, xmlParserCtxt, ctx);

  if (xmlCtxtUseOptions(ctx, (int)NUM2INT(options)) != 0)
    rb_raise(rb_eRuntimeError, "Cannot set XML parser context options");

  return Qnil;
}
write(chunk, last_chunk = false) Show source

Write a chunk of XML to the PushParser. Any callback methods that can be called will be called immediately.

# File lib/nokogiri/xml/sax/push_parser.rb, line 46
def write chunk, last_chunk = false
  native_write(chunk, last_chunk)
end
Also aliased as: <<

© 2008–2016 Aaron Patterson, Mike Dalessio, Charles Nutter, Sergio Arbeo
Patrick Mahoney, Yoko Harada, Akinori Musha, John Shahid
Licensed under the MIT License.

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部