class Aws::Xml::Parser
A SAX-style XML parser that uses a shape context to handle types.
Constants
- FRAME_CLASSES
Public Class Methods
engine()
click to toggle source
@return [Class] Returns the default parsing engine.
One of: * {OxEngine} * {OgaEngine} * {LibxmlEngine} * {NokogiriEngine} * {RexmlEngine}
# File lib/aws-sdk-core/xml/parser.rb, line 57 def engine @engine end
engine=(engine)
click to toggle source
@param [Symbol,Class] engine
Must be one of the following values: * :ox * :oga * :libxml * :nokogiri * :rexml
# File lib/aws-sdk-core/xml/parser.rb, line 44 def engine= engine @engine = Class === engine ? engine : load_engine(engine) end
new(rules, options = {})
click to toggle source
@param [Seahorse::Model::ShapeRef] rules
# File lib/aws-sdk-core/xml/parser.rb, line 18 def initialize(rules, options = {}) @rules = rules @engine = options[:engine] || self.class.engine end
Private Class Methods
load_engine(name)
click to toggle source
# File lib/aws-sdk-core/xml/parser.rb, line 63 def load_engine(name) require "aws-sdk-core/xml/parser/engines/#{name}" const_name = name[0].upcase + name[1..-1] + 'Engine' const_get(const_name) end
try_load_engine(name)
click to toggle source
# File lib/aws-sdk-core/xml/parser.rb, line 69 def try_load_engine(name) load_engine(name) rescue LoadError false end
Public Instance Methods
parse(xml, target = nil)
click to toggle source
@param [String] xml An XML document string to parse. @param [Structure] target (nil) @return [Structure]
# File lib/aws-sdk-core/xml/parser.rb, line 26 def parse(xml, target = nil) xml = '<xml/>' if xml.nil? or xml.empty? stack = Stack.new(@rules, target) @engine.new(stack).parse(xml.to_s) stack.result end