def get_shares(self, path='', **kwargs):
        if not (isinstance(path, six.string_types)):
            return None
        data = 'shares'
        if path != '':
            data += '?'
            path = self._encode_string(self._normalize_path(path))
            args = {'path': path}
            reshares = kwargs.get('reshares', False)
            if isinstance(reshares, bool) and reshares:
                args['reshares'] = reshares
            subfiles = kwargs.get('subfiles', False)
            if isinstance(subfiles, bool) and subfiles:
                args['subfiles'] = str(subfiles).lower()
            shared_with_me = kwargs.get('shared_with_me', False)
            if isinstance(shared_with_me, bool) and shared_with_me:
                args['shared_with_me'] = "true"
                del args['path']
            data += parse.urlencode(args)
        res = self._make_ocs_request(
            'GET',
            self.OCS_SERVICE_SHARE,
            data
        )
        if res.status_code == 200:
            tree = ET.fromstring(res.content)
            self._check_ocs_status(tree)
            shares = []
            for element in tree.find('data').iter('element'):
                '''share_attr = {}
                for child in element:
                    key = child.tag
                    value = child.text
                    share_attr[key] = value
                shares.append(share_attr)'''
                shares.append(self._get_shareinfo(element))
            return shares
        raise HTTPResponseError(res)