code: def handle(self, tag, data):
          
  
          if self.is_end(tag):
              self.postprocess_entry()
  
          if self.is_start(tag):
              self.new_entry()
  
          if not data or not tag:
              return
  
          if getattr(self, 'parse_only', None) and tag not in self.parse_only:
              return
  
          # TODO: revisit encoding here.
          if isinstance(data, unicode):
              data = unicodedata.normalize('NFKD', data)#.encode('utf-8','ignore')
  
          handler = self._get_handler(tag)
          if handler is not None:
              data = handler(data)
  
          if tag in self.tags:    # Rename the field.
              tag = self.tags[tag]
  
          # Multiline fields are represented as lists of values.
          if hasattr(self.data[-1], tag):
              value = getattr(self.data[-1], tag)
              if tag in self.concat_fields:
                  value = ' '.join([value, unicode(data)])
              elif type(value) is list:
                  value.append(data)
              elif value not in [None, '']:
                  value = [value, data]
          else:
              value = data
          setattr(self.data[-1], tag, value)
          self.fields.add(tag)
docs: Process a single line of data, and store the result.
  
          Parameters
          ----------
          tag : str
          data :