    # File lib/fog/core/parser.rb, line 83
        def start_element(name, attributes = [])
          @value = ''
          parsed_attributes = {}
          until attributes.empty?
            if attributes.first.is_a?(Array)
              key, value = attributes.shift
            else
              key, value = attributes.shift, attributes.shift
            end
            parsed_attributes[key.gsub(':','_').to_sym] = value
          end
          if @stack.last.is_a?(Array)
            @stack.last << {name.to_sym => parsed_attributes}
          else
            data = if @stack.empty?
              @stack.push(parsed_attributes)
              parsed_attributes
            elsif @stack.last[name.to_sym]
              unless @stack.last[name.to_sym].is_a?(Array)
                @stack.last[name.to_sym] = [@stack.last[name.to_sym]]
              end
              @stack.last[name.to_sym] << parsed_attributes
              @stack.last[name.to_sym].last
            else
              @stack.last[name.to_sym] = {}
              @stack.last[name.to_sym].merge!(parsed_attributes)
              @stack.last[name.to_sym]
            end
            @stack.push(data)
          end
        end