docs: def parse(self, xml_file, view_name=None) -> XmlNode:
          """Parses xml file with xml_path and returns XmlNode"""
          self._setup_parser()
          try:
              self._view_name = view_name
              self._parser.ParseFile(xml_file)
          except ExpatError as error:
              # pylint: disable=E1101
              raise XmlError(errors.messages[error.code], ViewInfo(view_name, error.lineno))
  
          root = self._root
          self._reset()
          return root