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
Methods
C
D
E
N
S
W
Class Public methods
new(host, opt = {})

Create a new XSD parser with host and opt

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

Handle cdata_blocks containing string

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

Start parsing string_or_readable

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

Handle the #end_element event with name

# File lib/xsd/xmlparser/nokogiri.rb, line 48
def end_element name
  super
end
end_element_namespace(name, prefix = nil, uri = nil)

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 89
def end_element_namespace name, prefix = nil, uri = nil
  ###
  # Deal with SAX v1 interface
  end_element [prefix, name].compact.join(':')
end
error(msg)

Handle errors with message msg

Also aliased as: warning
# File lib/xsd/xmlparser/nokogiri.rb, line 54
def error msg
  raise ParseError.new(msg)
end
start_element(name, attrs = [])

Handle the #start_element event with name and attrs

# File lib/xsd/xmlparser/nokogiri.rb, line 42
def start_element name, attrs = []
  super(name, Hash[*attrs.flatten])
end
start_element_namespace(name, attrs = [], prefix = nil, uri = nil, ns = [])

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 72
def start_element_namespace name, attrs = [], prefix = nil, uri = nil, ns = []
  ###
  # Deal with SAX v1 interface
  name = [prefix, name].compact.join(':')
  attributes = ns.map { |ns_prefix,ns_uri|
    [['xmlns', ns_prefix].compact.join(':'), ns_uri]
  } + attrs.map { |attr|
    [[attr.prefix, attr.localname].compact.join(':'), attr.value]
  }.flatten
  start_element name, attributes
end
warning(msg)
Alias for: error