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.
xmllint (geralmente já vem com o pacote libxml2).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"}')
"
| 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 |
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.