Class: Nokogiri::HTML::SAX::ParserContext
- Inherits:
-
XML::SAX::ParserContext
show all
- Defined in:
- lib/nokogiri/html/sax/parser_context.rb,
lib/nokogiri/ffi/html/sax/parser_context.rb,
ext/nokogiri/html_sax_parser_context.c
Overview
Context for HTML SAX parsers. This class is usually not instantiated by the user. Instead, you should be looking at Nokogiri::HTML::SAX::Parser
Instance Attribute Summary collapse
#reader_callback
Class Method Summary
collapse
Instance Method Summary
collapse
io, #replace_entities, #replace_entities=
Instance Attribute Details
#cstruct ⇒ Object
Returns the value of attribute cstruct.
6
7
8
|
# File 'lib/nokogiri/ffi/html/sax/parser_context.rb', line 6
def cstruct
@cstruct
end
|
Class Method Details
.file(filename, encoding) ⇒ Object
41
42
43
44
45
46
|
# File 'ext/nokogiri/html_sax_parser_context.c', line 41
def self.file filename, encoding
ctx = LibXML.htmlCreateFileParserCtxt filename, encoding
pc = allocate
pc.cstruct = LibXML::XmlParserContext.new ctx
pc
end
|
.memory(data, encoding) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'ext/nokogiri/html_sax_parser_context.c', line 16
def self.memory data, encoding
raise ArgumentError unless data
raise "data cannot be empty" unless data.length > 0
ctx = LibXML.htmlCreateMemoryParserCtxt data, data.length
pc = allocate
pc.cstruct = LibXML::XmlParserContext.new ctx
if encoding
enc = LibXML.xmlParseCharEncoding(encoding)
if enc != LibXML::XML_CHAR_ENCODING_ERROR
LibXML.xmlSwitchEncoding(ctx, enc)
end
end
pc
end
|
.new(thing, encoding = 'UTF-8') ⇒ Object
9
10
11
12
|
# File 'lib/nokogiri/html/sax/parser_context.rb', line 9
def self.new thing, encoding = 'UTF-8'
[:read, :close].all? { |x| thing.respond_to?(x) } ? super :
memory(thing, encoding)
end
|
Instance Method Details
#parse_with(sax_handler) ⇒ Object
50
51
52
|
# File 'ext/nokogiri/html_sax_parser_context.c', line 50
def parse_with sax_handler, type = :html
super
end
|