code: def _crawl_elsevier_and_find_main_xml(self):
          
          self.found_articles = []
          if not self.path and not self.package_name:
              for doc in self.conn.found_articles:
                  dirname = doc['xml'].rstrip('/main.xml')
                  try:
                      self._normalize_article_dir_with_dtd(dirname)
                      self.found_articles.append(dirname)
                  except Exception as err:
                      register_exception()
                      print("ERROR: can't normalize %s: %s" % (dirname, err))
          else:
              def visit(dummy, dirname, names):
                  if "main.xml" in names and "main.pdf" in names:
                      try:
                          self._normalize_article_dir_with_dtd(dirname)
                          self.found_articles.append(dirname)
                      except Exception as err:
                          register_exception()
                          print("ERROR: can't normalize %s: %s" % (dirname, err))
              walk(self.path, visit, None)
docs: A package contains several subdirectory corresponding to each article.
          An article is actually identified by the existence of a main.pdf and
          a main.xml in a given directory.