Class: Moxml::Adapter::REXMLSAX2Bridge
- Inherits:
-
Object
- Object
- Moxml::Adapter::REXMLSAX2Bridge
- Defined in:
- lib/moxml/adapter/rexml.rb
Overview
Bridge between REXML SAX2 and Moxml SAX
Translates REXML::SAX2Parser events to Moxml::SAX::Handler events
Instance Method Summary collapse
- #cdata(content) ⇒ Object
- #characters(text) ⇒ Object
- #comment(text) ⇒ Object
- #end_document ⇒ Object
- #end_element(_uri, _localname, qname) ⇒ Object
-
#initialize(handler) ⇒ REXMLSAX2Bridge
constructor
A new instance of REXMLSAX2Bridge.
- #processing_instruction(target, data) ⇒ Object
- #progress(position) ⇒ Object
- #start_document ⇒ Object
-
#start_element(_uri, _localname, qname, attributes) ⇒ Object
REXML splits element name into uri/localname/qname.
-
#xmldecl(version, encoding, standalone) ⇒ Object
REXML calls these but we don’t need to handle them.
Constructor Details
#initialize(handler) ⇒ REXMLSAX2Bridge
Returns a new instance of REXMLSAX2Bridge.
507 508 509 |
# File 'lib/moxml/adapter/rexml.rb', line 507 def initialize(handler) @handler = handler end |
Instance Method Details
#cdata(content) ⇒ Object
539 540 541 |
# File 'lib/moxml/adapter/rexml.rb', line 539 def cdata(content) @handler.on_cdata(content) end |
#characters(text) ⇒ Object
535 536 537 |
# File 'lib/moxml/adapter/rexml.rb', line 535 def characters(text) @handler.on_characters(text) end |
#comment(text) ⇒ Object
543 544 545 |
# File 'lib/moxml/adapter/rexml.rb', line 543 def comment(text) @handler.on_comment(text) end |
#end_document ⇒ Object
555 556 557 |
# File 'lib/moxml/adapter/rexml.rb', line 555 def end_document @handler.on_end_document end |
#end_element(_uri, _localname, qname) ⇒ Object
531 532 533 |
# File 'lib/moxml/adapter/rexml.rb', line 531 def end_element(_uri, _localname, qname) @handler.on_end_element(qname) end |
#processing_instruction(target, data) ⇒ Object
547 548 549 |
# File 'lib/moxml/adapter/rexml.rb', line 547 def processing_instruction(target, data) @handler.on_processing_instruction(target, data || "") end |
#progress(position) ⇒ Object
564 565 566 |
# File 'lib/moxml/adapter/rexml.rb', line 564 def progress(position) # Progress callback - we don't need to do anything end |
#start_document ⇒ Object
551 552 553 |
# File 'lib/moxml/adapter/rexml.rb', line 551 def start_document @handler.on_start_document end |
#start_element(_uri, _localname, qname, attributes) ⇒ Object
REXML splits element name into uri/localname/qname
512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 |
# File 'lib/moxml/adapter/rexml.rb', line 512 def start_element(_uri, _localname, qname, attributes) # Convert REXML attributes to hash attr_hash = {} ns_hash = {} attributes.each do |name, value| if name.to_s.start_with?("xmlns") # Namespace declaration prefix = name.to_s == "xmlns" ? nil : name.to_s.sub("xmlns:", "") ns_hash[prefix] = value else attr_hash[name.to_s] = value end end # Use qname (qualified name) for element name @handler.on_start_element(qname, attr_hash, ns_hash) end |
#xmldecl(version, encoding, standalone) ⇒ Object
REXML calls these but we don’t need to handle them
560 561 562 |
# File 'lib/moxml/adapter/rexml.rb', line 560 def xmldecl(version, encoding, standalone) # XML declaration - we don't need to do anything end |