class XSD::XMLParser::Nokogiri - nokogiri-1.15.2 Documentation

# class XSD::XMLParser::Nokogiri

`Nokogiri` XML parser for soap4r.

`Nokogiri` may be used as the XML parser in soap4r. Simply require ‘xsd/xmlparser/nokogiri’ in your soap4r applications, and soap4r will use `Nokogiri` as it’s XML parser. No other changes should be required to use `Nokogiri` as the XML parser.

Example (using UW ITS Web Services):

    require 'rubygems'
    require 'nokogiri'
    gem 'soap4r'
    require 'defaultDriver'
    require 'xsd/xmlparser/nokogiri'

    obj = AvlPortType.new
    obj.getLatestByRoute(obj.getAgencies.first, 8).each do |bus|
      p "#{bus.routeID}, #{bus.longitude}, #{bus.latitude}"
    end

### Public Class Methods

new(host, opt = {}) click to toggle source

Create a new `XSD` parser with `host` and `opt`

Calls superclass method

    # File lib/xsd/xmlparser/nokogiri.rb, line 31
    def initialize(host, opt = {})
      super
      @parser = ::Nokogiri::XML::SAX::Parser.new(self, @charset || "UTF-8")
    end

### Public Instance Methods

cdata_block(string) click to toggle source

Handle cdata_blocks containing `string`

    # File lib/xsd/xmlparser/nokogiri.rb, line 63
    def cdata_block(string)
      characters(string)
    end

do_parse(string_or_readable) click to toggle source

Start parsing `string_or_readable`

    # File lib/xsd/xmlparser/nokogiri.rb, line 38
    def do_parse(string_or_readable)
      @parser.parse(string_or_readable)
    end

end_element(name) click to toggle source

Handle the `end_element` event with `name`

Calls superclass method

    # File lib/xsd/xmlparser/nokogiri.rb, line 50
    def end_element(name)
      super
    end

end_element_namespace(name, prefix = nil, uri = nil) click to toggle source

Called at the end of an element `name` is the element’s name `prefix` is the namespace prefix associated with the element `uri` is the associated namespace URI

    # File lib/xsd/xmlparser/nokogiri.rb, line 91
    def end_element_namespace(name, prefix = nil, uri = nil)
      ###
      # Deal with SAX v1 interface
      end_element([prefix, name].compact.join(":"))
    end

error(msg) click to toggle source

Handle errors with message `msg`

    # File lib/xsd/xmlparser/nokogiri.rb, line 56
    def error(msg)
      raise ParseError, msg
    end

Also aliased as: warning
start_element(name, attrs = []) click to toggle source

Handle the `start_element` event with `name` and `attrs`

Calls superclass method

    # File lib/xsd/xmlparser/nokogiri.rb, line 44
    def start_element(name, attrs = [])
      super(name, Hash[*attrs.flatten])
    end

start_element_namespace(name, attrs = [], prefix = nil, uri = nil, ns = []) click to toggle source

Called at the beginning of an element `name` is the element name `attrs` is a list of attributes `prefix` is the namespace prefix for the element `uri` is the associated namespace URI `ns` is a hash of namespace prefix:urls associated with the element

    # File lib/xsd/xmlparser/nokogiri.rb, line 74
    def start_element_namespace(name, attrs = [], prefix = nil, uri = nil, ns = []) # rubocop:disable Metrics/ParameterLists
      ###
      # Deal with SAX v1 interface
      name = [prefix, name].compact.join(":")
      attributes = ns.map do |ns_prefix, ns_uri|
        [["xmlns", ns_prefix].compact.join(":"), ns_uri]
      end + attrs.map do |attr|
        [[attr.prefix, attr.localname].compact.join(":"), attr.value]
      end.flatten
      start_element(name, attributes)
    end

warning(msg)
Alias for: error