Class: VCDOM::XMLLS::XMLContentHandler
- Inherits:
-
Object
- Object
- VCDOM::XMLLS::XMLContentHandler
- Defined in:
- lib/vcdom/xml_ls/xml_parser.rb
Overview
:nodoc:
Instance Method Summary collapse
- #end_document ⇒ Object
-
#initialize(document_class) ⇒ XMLContentHandler
constructor
A new instance of XMLContentHandler.
- #ns_stack ⇒ Object
- #on_begin_attr(name, ns_uri) ⇒ Object
- #on_chardata(char_data) ⇒ Object
- #on_eetag(name, ns_uri) ⇒ Object
- #on_end_attr ⇒ Object
- #on_end_eetag ⇒ Object
- #on_etag(name) ⇒ Object
- #on_stag(name, ns_uri) ⇒ Object
- #start_document ⇒ Object
Constructor Details
#initialize(document_class) ⇒ XMLContentHandler
Returns a new instance of XMLContentHandler.
17 18 19 20 |
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 17 def initialize( document_class ) @document_class = document_class @ns_stack = Array.new() end |
Instance Method Details
#end_document ⇒ Object
28 29 30 |
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 28 def end_document return @doc end |
#ns_stack ⇒ Object
21 22 23 |
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 21 def ns_stack @ns_stack end |
#on_begin_attr(name, ns_uri) ⇒ Object
46 47 48 49 50 |
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 46 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
54 55 56 57 58 59 60 61 62 |
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 54 def on_chardata( char_data ) if @cur.node_type == VCDOM::Node::DOCUMENT_NODE then if char_data !~ /\A[\x20\x09\x0D\x0A]*\Z/ then raise "ERROR : " + char_data.inspect end else @cur.append_child( @doc.create_text_node( char_data ) ) end end |
#on_eetag(name, ns_uri) ⇒ Object
40 41 42 |
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 40 def on_eetag( name, ns_uri ) @cur = @cur.append_child( @doc.create_element_ns( ns_uri, name ) ) end |
#on_end_attr ⇒ Object
51 52 53 |
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 51 def on_end_attr() @cur = @cur.owner_element end |
#on_end_eetag ⇒ Object
43 44 45 |
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 43 def on_end_eetag() @cur = @cur.parent_node end |
#on_etag(name) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 34 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
31 32 33 |
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 31 def on_stag( name, ns_uri ) @cur = @cur.append_child( @doc.create_element_ns( ns_uri, name ) ) end |
#start_document ⇒ Object
24 25 26 27 |
# File 'lib/vcdom/xml_ls/xml_parser.rb', line 24 def start_document @doc = @document_class._new() @cur = @doc end |