# File lib/soap/mapping/mapping.rb, line 328
  def self.get_attribute(obj, attr_name)
    case obj
    when ::SOAP::Mapping::Object
      return obj[attr_name]
    when ::Hash
      return obj[attr_name] || obj[attr_name.intern]
    else
      if obj.respond_to?(attr_name)
        return obj.__send__(attr_name)
      end
      iv = obj.instance_variables
      name = Mapping.safevarname(attr_name)
      if iv.include?("@#{name}")
        return obj.instance_variable_get("@#{name}")
      elsif iv.include?("@#{attr_name}")
        return obj.instance_variable_get("@#{attr_name}")
      end
      if obj.respond_to?(name)
        return obj.__send__(name)
      end
      nil
    end
  end