Class: XSD::XMLParser::Nokogiri
- Inherits:
-
Parser
- Object
- Parser
- XSD::XMLParser::Nokogiri
- Defined in:
- lib/xsd/xmlparser/nokogiri.rb
Overview
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
Instance Method Summary collapse
-
#cdata_block(string) ⇒ Object
Handle cdata_blocks containing
string
. -
#do_parse(string_or_readable) ⇒ Object
Start parsing
string_or_readable
. -
#end_element(name) ⇒ Object
Handle the end_element event with
name
. -
#end_element_namespace(name, prefix = nil, uri = nil) ⇒ Object
Called at the end of an element
name
is the element’s nameprefix
is the namespace prefix associated with the elementuri
is the associated namespace URI. -
#error(msg) ⇒ Object
(also: #warning)
Handle errors with message
msg
. -
#initialize(host, opt = {}) ⇒ Nokogiri
constructor
Create a new XSD parser with
host
andopt
. -
#start_element(name, attrs = []) ⇒ Object
Handle the start_element event with
name
andattrs
. -
#start_element_namespace(name, attrs = [], prefix = nil, uri = nil, ns = []) ⇒ Object
Called at the beginning of an element
name
is the element nameattrs
is a list of attributesprefix
is the namespace prefix for the elementuri
is the associated namespace URIns
is a hash of namespace prefix:urls associated with the element.
Constructor Details
Instance Method Details
#cdata_block(string) ⇒ Object
Handle cdata_blocks containing string
63 64 65 |
# File 'lib/xsd/xmlparser/nokogiri.rb', line 63 def cdata_block(string) characters(string) end |
#do_parse(string_or_readable) ⇒ Object
Start parsing string_or_readable
38 39 40 |
# File 'lib/xsd/xmlparser/nokogiri.rb', line 38 def do_parse(string_or_readable) @parser.parse(string_or_readable) end |
#end_element(name) ⇒ Object
Handle the end_element event with name
50 51 52 |
# File 'lib/xsd/xmlparser/nokogiri.rb', line 50 def end_element(name) super end |
#end_element_namespace(name, prefix = nil, uri = nil) ⇒ Object
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
91 92 93 94 95 |
# 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) ⇒ Object Also known as: warning
Handle errors with message msg
56 57 58 |
# File 'lib/xsd/xmlparser/nokogiri.rb', line 56 def error(msg) raise ParseError, msg end |
#start_element(name, attrs = []) ⇒ Object
Handle the start_element event with name
and attrs
44 45 46 |
# 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 = []) ⇒ Object
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
74 75 76 77 78 79 80 81 82 83 84 |
# 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 |