Sha256: f8d5db510bd096ce18f38ae40140d0440570961055466bb0bad3e3eea671cb0b
Contents?: true
Size: 792 Bytes
Versions: 113
Compression:
Stored size: 792 Bytes
Contents
# frozen_string_literal: true require 'oga' module Aws module Xml class Parser class OgaEngine def initialize(stack) @stack = stack @depth = 0 end def parse(xml) Oga.sax_parse_xml(self, xml, strict:true) rescue LL::ParserError => error raise ParsingError.new(error.message, nil, nil) end def on_element(namespace, name, attrs = {}) @depth += 1 @stack.start_element(name) attrs.each do |attr| @stack.attr(*attr) end end def on_text(value) @stack.text(value) if @depth > 0 end def after_element(_, _) @stack.end_element @depth -= 1 end end end end end
Version data entries
113 entries across 113 versions & 1 rubygems