Class Nokogiri::XML::SAX::ParserContext inherits from Object
Context for XML SAX parsers. This class is usually not instantiated by the user. Instead, you should be looking at Nokogiri::XML::SAX::Parser
Public Class Methods
- file(p1) Show Source
Parse file given filename
-
static VALUE parse_file(VALUE klass, VALUE filename) { xmlParserCtxtPtr ctxt = xmlCreateFileParserCtxt(StringValuePtr(filename)); return Data_Wrap_Struct(klass, NULL, deallocate, ctxt); }
- io(p1, p2) Show Source
Parse io object with encoding
-
static VALUE parse_io(VALUE klass, VALUE io, VALUE encoding) { xmlCharEncoding enc = (xmlCharEncoding)NUM2INT(encoding); xmlParserCtxtPtr ctxt = xmlCreateIOParserCtxt( NULL, NULL, (xmlInputReadCallback)io_read_callback, (xmlInputCloseCallback)io_close_callback, (void *)io, enc ); return Data_Wrap_Struct(klass, NULL, deallocate, ctxt); }
- memory(p1) Show Source
Parse the XML stored in memory in data
-
static VALUE parse_memory(VALUE klass, VALUE data) { xmlParserCtxtPtr ctxt; if(NIL_P(data)) rb_raise(rb_eArgError, "data cannot be nil"); if(!(int)RSTRING_LEN(data)) rb_raise(rb_eRuntimeError, "data cannot be empty"); ctxt = xmlCreateMemoryParserCtxt( StringValuePtr(data), (int)RSTRING_LEN(data) ); return Data_Wrap_Struct(klass, NULL, deallocate, ctxt); }
- new(thing, encoding = 'UTF-8') Show Source
-
# File lib/nokogiri/xml/sax/parser_context.rb, line 9 9: def self.new thing, encoding = 'UTF-8' 10: [:read, :close].all? { |x| thing.respond_to?(x) } ? 11: io(thing, Parser::ENCODINGS[encoding]) : memory(thing) 12: end
Public Instance Methods
- parse_with(p1) Show Source
Use sax_handler and parse the current document
-
static VALUE parse_with(VALUE self, VALUE sax_handler) { xmlParserCtxtPtr ctxt; xmlSAXHandlerPtr sax; if(!rb_obj_is_kind_of(sax_handler, cNokogiriXmlSaxParser)) rb_raise(rb_eArgError, "argument must be a Nokogiri::XML::SAX::Parser"); Data_Get_Struct(self, xmlParserCtxt, ctxt); Data_Get_Struct(sax_handler, xmlSAXHandler, sax); /* Free the sax handler since we'll assign our own */ if(ctxt->sax && ctxt->sax != (xmlSAXHandlerPtr)&xmlDefaultSAXHandler) xmlFree(ctxt->sax); ctxt->sax = sax; ctxt->userData = (void *)NOKOGIRI_SAX_TUPLE_NEW(ctxt, sax_handler); xmlParseDocument(ctxt); if(NULL != ctxt->myDoc) xmlFreeDoc(ctxt->myDoc); NOKOGIRI_SAX_TUPLE_DESTROY(ctxt->userData); return Qnil ; }
- replace_entities() Show Source
Should this parser replace entities? & will get converted to ’&’ if set to true
-
static VALUE get_replace_entities(VALUE self) { xmlParserCtxtPtr ctxt; Data_Get_Struct(self, xmlParserCtxt, ctxt); if(0 == ctxt->replaceEntities) return Qfalse; else return Qtrue; }
- replace_entities=(p1) Show Source
Should this parser replace entities? & will get converted to ’&’ if set to true
-
static VALUE set_replace_entities(VALUE self, VALUE value) { xmlParserCtxtPtr ctxt; Data_Get_Struct(self, xmlParserCtxt, ctxt); if(Qfalse == value) ctxt->replaceEntities = 0; else ctxt->replaceEntities = 1; return value; }