def article_xml_constructor(file_xml_path: str, dest_path: str, pid_database_engine, in_place: bool) -> None: logger.debug("file: %s", file_xml_path) parsed_xml = xml.loadToXML(file_xml_path) xml_sps = SPS_Package(parsed_xml) pid_v2 = xml_sps.scielo_pid_v2 # VERIFICA A EXISTÊNCIA DO PID V3 NO XC ATRAVES DO PID V2 if not pid_manager.check_pid_v3_by_v2(pid_database_engine, pid_v2): # CONSTROI O SCIELO-id NO XML CONVERTIDO xml_sps.create_scielo_id() # CRIA O PID V2 E V3 NA BASE DE DADOS DO XC pid_manager.create_pid(pid_database_engine, pid_v2, xml_sps.scielo_pid_v3) else: # SE CASO EXISTA O PID NO VERSÃO 3 NA BASE DO XC É PRECISO ADICIONAR NO XML pid_v3 = pid_manager.get_pid_v3_by_v2(pid_database_engine, pid_v2) xml_sps.scielo_pid_v3 = pid_v3 if in_place: new_file_xml_path = file_xml_path else: new_file_xml_path = os.path.join(dest_path, os.path.basename(file_xml_path)) xml.objXML2file(new_file_xml_path, xml_sps.xmltree, pretty=True)
def convert_article_xml(file_xml_path): obj_xmltree = xml.loadToXML(file_xml_path) obj_xml = obj_xmltree.getroot() obj_xml.set("specific-use", "sps-1.9") obj_xml.set("dtd-version", "1.1") xml_sps = SPS_Package(obj_xmltree) # CONVERTE O BODY DO AM PARA SPS xml_sps.transform_body() # CONVERTE PUB-DATE PARA SPS 1.9 xml_sps.transform_pubdate() # CONSTROI O SCIELO-id NO XML CONVERTIDO xml_sps.create_scielo_id() # Remove a TAG <counts> do XML xml_sps.transform_article_meta_count() languages = "-".join(xml_sps.languages) _, fname = os.path.split(file_xml_path) fname, fext = fname.rsplit(".", 1) new_file_xml_path = os.path.join(config.get("CONVERSION_PATH"), "%s.%s.%s" % (fname, languages, fext)) xml.objXML2file(new_file_xml_path, xml_sps.xmltree, pretty=True)
def article_xml_constructor(file_xml_path: str, dest_path: str) -> None: logger.debug("file: %s", file_xml_path) parsed_xml = xml.loadToXML(file_xml_path) xml_sps = SPS_Package(parsed_xml) # CONSTROI O SCIELO-id NO XML CONVERTIDO xml_sps.create_scielo_id() new_file_xml_path = os.path.join(dest_path, os.path.basename(file_xml_path)) xml.objXML2file(new_file_xml_path, xml_sps.xmltree, pretty=True)