code: def _parseParams(self):
          
          # check if there are any parameters
          if " " not in self._element or "=" not in self._element:
              return
  
          # remove '<' & '>'
          params = self._element.strip()[1:-1].strip()
  
          # remove tagname
          offset = params.find(self.getTagName()) + len(self.getTagName())
          params = params[offset:].strip()
  
          # parser machine
          next_state = 0
          key = ""
          value = ""
          end_quote = ""
          buff = ["", ""]
          for c in params:
              if next_state == 0:      # key
                  if c.strip() != "":  # safer than list space, tab and all
                      if c == "=":     # possible whitespaces in UTF
                          next_state = 1
                      else:
                          key += c
  
              elif next_state == 1:    # value decisioner
                  if c.strip() != "":  # skip whitespaces
                      if c == "'" or c == '"':
                          next_state = 3
                          end_quote = c
                      else:
                          next_state = 2
                          value += c
  
              elif next_state == 2:    # one word parameter without quotes
                  if c.strip() == "":
                      next_state = 0
                      self.params[key] = value
                      key = ""
                      value = ""
                  else:
                      value += c
  
              elif next_state == 3:    # quoted string
                  if c == end_quote and (buff[0] != "\\" or (buff[0]) == "\\" and buff[1] == "\\"):
                      next_state = 0
                      self.params[key] = unescape(value, end_quote)
                      key = ""
                      value = ""
                      end_quote = ""
                  else:
                      value += c
  
              buff = _rotate_buff(buff)
              buff[0] = c
  
          if key:
              if end_quote and value.strip():
                  self.params[key] = unescape(value, end_quote)
              else:
                  self.params[key] = value
  
          if "/" in self.params.keys():
              del self.params["/"]
              self._isnonpairtag = True
docs: Parse parameters from their string HTML representation to dictionary.
  
          Result is saved to the :attr:`params` property.