seabeck.pages.dev

Como verificar CPF em arquivo XML com XPath no terminal?

Verificar CPFs em arquivos XML pode ser uma tarefa tediosa e propensa a erros quando feita manualmente. Utilizar XPath no terminal oferece uma solução rápida, precisa e automatizada para extrair e validar esses dados, economizando tempo e garantindo a integridade das informações.

Pré-requisitos

Passo 1: Extrair CPFs com XPath

Utilize o comando xmllint com a opção --xpath para extrair os valores dos CPFs do arquivo XML. O XPath deve ser ajustado de acordo com a estrutura do seu arquivo.

xmllint --xpath "//cliente/cpf/text()" arquivo.xml

Para validar os CPFs extraídos, você pode usar um script Python simples. O script abaixo verifica se os CPFs são válidos de acordo com o algoritmo de validação brasileiro.

python3 -c "
import re

def validar_cpf(cpf):
    cpf = ''.join(re.findall(r'\d', cpf))
    if len(cpf) != 11:
        return False
    if cpf == cpf[0] * 11:
        return False
    # Cálculo do primeiro dígito verificador
    soma = sum(int(digito) * (10 - i) for i, digito in enumerate(cpf[:9]))
    resto = soma % 11
    digito1 = 0 if resto < 2 else 11 - resto
    # Cálculo do segundo dígito verificador
    soma = sum(int(digito) * (11 - i) for i, digito in enumerate(cpf[:10]))
    resto = soma % 11
    digito2 = 0 if resto < 2 else 11 - resto
    return str(digito1) == cpf[9] and str(digito2) == cpf[10]

cpfs = ['12345678909', '11111111111', '40364478829']
for cpf in cpfs:
    print(f'{cpf}: {"Válido" if validar_cpf(cpf) else "Inválido"}')
"

Exemplo Prático

CPF no XML CPF Extraído Status
<cpf>123.456.789-09</cpf> 12345678909 Inválido
<cpf>111.111.111-11</cpf> 11111111111 Inválido
<cpf>403.644.788-29</cpf> 40364478829 Válido

Conclusão

Com este método, você automatiza a tarefa de verificar CPFs em arquivos XML em segundos, evitando erros manuais e garantindo a precisão dos dados. A combinação de XPath para extração e um script Python para validação oferece uma solução robusta e eficiente para qualquer volume de dados.