Class: VCDOM::XMLContentHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/vcdom/xml_parser.rb

Instance Method Summary collapse

Constructor Details

#initialize(document_class) ⇒ XMLContentHandler

Returns a new instance of XMLContentHandler.



15
16
17
18
# File 'lib/vcdom/xml_parser.rb', line 15

def initialize( document_class )
  @document_class = document_class
  @ns_stack = Array.new()
end

Instance Method Details

#end_documentObject



26
27
28
# File 'lib/vcdom/xml_parser.rb', line 26

def end_document
  return @doc
end

#ns_stackObject



19
20
21
# File 'lib/vcdom/xml_parser.rb', line 19

def ns_stack
  @ns_stack
end

#on_begin_attr(name, ns_uri) ⇒ Object



44
45
46
47
48
# File 'lib/vcdom/xml_parser.rb', line 44

def on_begin_attr( name, ns_uri )
  attr = @doc.create_attribute_ns( ns_uri, name )
  @cur.set_attribute_node_ns( attr )
  @cur = attr
end

#on_chardata(char_data) ⇒ Object



52
53
54
# File 'lib/vcdom/xml_parser.rb', line 52

def on_chardata( char_data )
  @cur.append_child( @doc.create_text_node( char_data ) )
end

#on_eetag(name, ns_uri) ⇒ Object



38
39
40
# File 'lib/vcdom/xml_parser.rb', line 38

def on_eetag( name, ns_uri )
  @cur = @cur.append_child( @doc.create_element_ns( ns_uri, name ) )
end

#on_end_attrObject



49
50
51
# File 'lib/vcdom/xml_parser.rb', line 49

def on_end_attr()
  @cur = @cur.owner_element
end

#on_end_eetagObject



41
42
43
# File 'lib/vcdom/xml_parser.rb', line 41

def on_end_eetag()
  @cur = @cur.parent_node
end

#on_etag(name) ⇒ Object



32
33
34
35
36
37
# File 'lib/vcdom/xml_parser.rb', line 32

def on_etag( name )
  if @cur.node_name != name then
    raise "[ERROR] @cur.node_name : #{@cur.node_name}, name : #{name}"
  end
  @cur = @cur.parent_node
end

#on_stag(name, ns_uri) ⇒ Object



29
30
31
# File 'lib/vcdom/xml_parser.rb', line 29

def on_stag( name, ns_uri )
  @cur = @cur.append_child( @doc.create_element_ns( ns_uri, name ) )
end

#start_documentObject



22
23
24
25
# File 'lib/vcdom/xml_parser.rb', line 22

def start_document
  @doc = @document_class._new()
  @cur = @doc
end