code: def parse_full(self, element):
          r
          values = collections.defaultdict(dict)
          for child in element:
              node = self.get_node(child)
              subs = self.parse_full(child)
              value = subs or {'values': node['value']}
              value['attrs'] = node['attr']
              if node['tag'] not in values['values']:
                  values['values'][node['tag']] = value
              else:
                  if not isinstance(values['values'][node['tag']], list):
                      values['values'][node['tag']] = [values['values'].pop(node['tag'])]
                  values['values'][node['tag']].append(value)
          return values
docs: r"""Parse xml element include the node attributes.
  
          :param element: an :class:`~xml.etree.ElementTree.Element` instance
          :rtype: dict
  
          .. versionadded:: 1.2.1