Sha256: ce9a27410cb6264683b16208c54c25eb2c6704c8161055f4044ae3d22e50735c

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

# encoding: UTF-8
# XSD4R - Nokogiri XML parser library.
# Copyright (C) 2015 Laurence A. Lee <rubyjedi@gmail.com>

# This program is copyrighted free software by Laurence A. Lee.  You can
# redistribute it and/or modify it under the same terms of Ruby's license;
# either the dual license version in 2003, or any later version.

require 'nokogiri'

module XSD
module XMLParser

class NokogiriParser < XSD::XMLParser::Parser
  def do_parse(string_or_readable)
    handler = NokoDocHandler.new(self)
    parser = Nokogiri::XML::SAX::Parser.new(handler)    
    parser.parse(string_or_readable)
  end

  add_factory(self)
end


class NokoDocHandler < Nokogiri::XML::SAX::Document
  def initialize(owner)
    @owner = (owner)
  end

  def start_element(name,attrs)
    attr_hash = Hash.new
    attrs.each do |kv_array|
      attr_hash[kv_array[0]] = kv_array[1]
    end
    @owner.send(:start_element, name, attr_hash)
  end
  
  def end_element(name)
    @owner.send(:end_element, name)
  end


  def cdata_block(t)
    @owner.send(:characters, t)
  end
  
  def characters(t)
    @owner.send(:characters, t)
  end
  
  def comment(t)
    @owner.send(:characters,t)
  end
end


end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
soap4r-ng-2.0.2 lib/xsd/xmlparser/nokogiriparser.rb
soap4r-ng-2.0.1 lib/xsd/xmlparser/nokogiriparser.rb