R/parserXML.R

#' @title parserXML
#'
#' @description This function convert a set of Lattes CV XML files to a hash table indexed by #'id_LATTES each researcher
#'
#' @param files a list of Lattes CV XML files
#'
#' @return a hash table indexed by id_LATTES of each researcher where each element corresponds to a data struct  AUTOR_DO_CURRICULO containing all the academic production of the researcher.
#'
#'
#'
#' @export ParserXML





ParserXML<-function(files=list()){



  out.table <- hash()

  # This loop extracts for each researcher its academic production  from its Lattes CV XML file
  for (file in files) {

    #id.lattes<-gsub(".xml", "", file)
    #cat("\n", id.lattes)
    doc=xmlParse(file)

    root<- xmlRoot(doc)

    data<- root[["DADOS-GERAIS"]]
    resume<- root[["DADOS-GERAIS"]][["RESUMO-CV"]]
    address <- root[["DADOS-GERAIS"]][["ENDERECO"]][["ENDERECO-PROFISSIONAL"]]


    ENDERECO_PROFISSIONAL<-new.env(parent=emptyenv())
    ENDERECO_PROFISSIONAL$CODIGO_INSTITUICAO_EMPRESA <- Validate( address,  'CODIGO-INSTITUICAO-EMPRESA' )
    ENDERECO_PROFISSIONAL$NOME_INSTITUICAO_EMPRESA<-Validate(address,  'NOME-INSTITUICAO-EMPRESA' )
    ENDERECO_PROFISSIONAL$CODIGO_ORGAO<-Validate(address,  'CODIGO-ORGAO' )
    ENDERECO_PROFISSIONAL$NOME_ORGAO<- Validate(address,  'NOME-ORGAO' )
    ENDERECO_PROFISSIONAL$CODIGO_UNIDADE<- Validate(address,  'CODIGO-UNIDADE' )
    ENDERECO_PROFISSIONAL$NOME_UNIDADE<-Validate(address,  'NOME-UNIDADE' )
    ENDERECO_PROFISSIONAL$LOGRADOURO_COMPLEMENTO<- Validate(address,  'LOGRADOURO-COMPLEMENTO' )
    ENDERECO_PROFISSIONAL$PAIS<-Validate(address,  'PAIS' )
    ENDERECO_PROFISSIONAL$PAIS<-Validate(address,  'UF' )
    ENDERECO_PROFISSIONAL$CEP<-Validate(address,  'CEP' )
    ENDERECO_PROFISSIONAL$CIDADE<-Validate(address,  'CIDADE' )
    ENDERECO_PROFISSIONAL$BAIRRO<-Validate(address,  'BAIRRO' )
    ENDERECO_PROFISSIONAL$DDD<- Validate(address,  'DDD' )
    ENDERECO_PROFISSIONAL$TELEFONE<- Validate(address,  'TELEFONE' )



    DADOS_GERAIS<-new.env(parent=emptyenv())
    DADOS_GERAIS$NUMERO_IDENTIFICADOR<-gsub(".xml", "", file)
    DADOS_GERAIS$NOME_COMPLETO <- Validate(data,  'NOME-COMPLETO' )
    DADOS_GERAIS$TEXTO_RESUMO_CV_RH<- Validate(resume, 'TEXTO-RESUMO-CV-RH' )
    DADOS_GERAIS$ENDERECO_PROFISSIONAL<-ENDERECO_PROFISSIONAL
    DADOS_GERAIS$DATA_ATUALIZACAO <-Validate(elemento_raiz, 'DATA-ATUALIZACAO' )
    DADOS_GERAIS$NOME_EM_CITACOES_BIBLIOGRAFICAS <-Validate(data, 'NOME-EM-CITACOES-BIBLIOGRAFICAS' )


    DADOS_GERAIS$AREAS_DE_ATUACAO <- BUSCAR_AREAS_DE_ATUACAO(doc)



    LIVROS_E_CAPITULOS<-new.env(parent=emptyenv())

    LIVROS_E_CAPITULOS$LIVROS_PUBLICADOS_OU_ORGANIZADOS<-BUSCAR_LIVROS_PUBLICADOS_OU_ORGANIZADOS(doc)

    LIVROS_E_CAPITULOS$CAPITULOS_DE_LIVROS_PUBLICADOS<-BUSCAR_CAPITULOS_DE_LIVROS_PUBLICADOS(doc)



    PRODUCAO_BIBLIOGRAFICA<-new.env(parent=emptyenv())
    PRODUCAO_BIBLIOGRAFICA$ARTIGOS_PUBLICADOS<-BUSCAR_ARTIGOS_PUBLICADOS(doc)

    PRODUCAO_BIBLIOGRAFICA$TRABALHOS_EM_EVENTOS<-BUSCAR_TRABALHOS_EM_EVENTOS(doc)
    PRODUCAO_BIBLIOGRAFICA$LIVROS_E_CAPITULOS<-LIVROS_E_CAPITULOS

    PRODUCAO_BIBLIOGRAFICA$TEXTOS_EM_JORNAIS_OU_REVISTAS<-BUSCAR_TEXTOS_EM_JORNAIS_OU_REVISTAS(doc)

    PRODUCAO_BIBLIOGRAFICA$DEMAIS_TIPOS_DE_PRODUCAO_BIBLIOGRAFICA<-BUSCAR_DEMAIS_TIPOS_DE_PRODUCAO_BIBLIOGRAFICA(doc)

    PRODUCAO_BIBLIOGRAFICA$ARTIGOS_ACEITOS_PARA_PUBLICACAO<-BUSCAR_ARTIGOS_ACEITOS_PARA_PUBLICACAO(doc)


    ORIENTACOES<-new.env(parent=emptyenv())
    ORIENTACOES$ORIENTACOES_EM_ANDAMENTO_MESTRADO <- BUSCAR_ORIENTACOES_EM_ANDAMENTO_MESTRADO(doc)

    ORIENTACOES$ORIENTACOES_EM_ANDAMENTO_DOUTORADO <- BUSCAR_ORIENTACOES_EM_ANDAMENTO_DOUTORADO(doc)

    ORIENTACOES$ORIENTACOES_EM_ANDAMENTO_DE_POS_DOUTORADO <- BUSCAR_ORIENTACAO_EM_ANDAMENTO_DE_POS_DOUTORADO(doc)

    ORIENTACOES$ORIENTACOES_EM_ANDAMENTO_DE_GRADUACAO <- BUSCAR_ORIENTACOES_EM_ANDAMENTO_GRADUACAO(doc)

    ORIENTACOES$ORIENTACOES_EM_ANDAMENTO_DE_INICIACAO_CIENTIFICA <- BUSCAR_ORIENTACOES_EM_ANDAMENTO_DE_INICIACAO_CIENTIFICA(doc)

    ORIENTACOES$ORIENTACOES_CONCLUIDAS_DE_MESTRADO <- BUSCAR_ORIENTACOES_CONCLUIDAS_DE_MESTRADO(doc)

    ORIENTACOES$ORIENTACOES_CONCLUIDAS_DE_DOUTORADO <- BUSCAR_ORIENTACOES_CONCLUIDAS_DE_DOUTORADO(doc)

    ORIENTACOES$ORIENTACOES_CONCLUIDAS_PARA_POS_DOUTORADO <- BUSCAR_ORIENTACOES_CONCLUIDAS_PARA_POS_DOUTORADO(doc)

    ORIENTACOES$OUTRAS_ORIENTACOES_CONCLUIDAS <- BUSCAR_OUTRAS_ORIENTACOES_CONCLUIDAS(doc)




    AUTOR_DO_CURRICULO<-new.env(parent=emptyenv())
    AUTOR_DO_CURRICULO$DADOS_GERAIS<-DADOS_GERAIS
    AUTOR_DO_CURRICULO$PRODUCAO_BIBLIOGRAFICA<-PRODUCAO_BIBLIOGRAFICA
    AUTOR_DO_CURRICULO$ORIENTACOES <- ORIENTACOES



    .set(out.table , AUTOR_DO_CURRICULO$DADOS_GERAIS$NUMERO_IDENTIFICADOR, AUTOR_DO_CURRICULO)

  }

  return(out.table)

}
brunojus/elattes documentation built on June 6, 2019, 10:01 a.m.