• +351 91 33 888 29
    • clico@clico.pt

    Comparar dois ficheiros HTML no Power Automate

    Comparar dois ficheiros HTML no Power Automate

    Se já tentaste “comparar HTML” no Power Automate, já deves ter percebido rapidamente o problema:
    HTML não é texto simples.

    Pequenas diferenças invisíveis — espaços extra, quebras de linha, atributos em ordem diferente, IDs dinâmicos, timestamps escondidos em comentários — fazem dois ficheiros visualmente idênticos parecerem completamente diferentes para o motor de comparação.

    A boa notícia?
    👉 Dá para fazer isto bem, desde que escolhas a abordagem certa.

    Primeiro passo: o que queres realmente comparar?

    Antes de começares a construir o fluxo, define claramente o objetivo. Parece óbvio, mas é aqui que muitos projetos falham.

    Pergunta-te:

    • Quero saber se o HTML é exatamente igual (byte a byte)?
    • Quero saber se o conteúdo é o mesmo, ignorando formatação?
    • Quero identificar o que mudou (diff) para registar ou enviar alertas?

    Cada objetivo exige uma estratégia diferente.

    Opção A — Igualdade “exata” (rápida e simples)

    Quando usar

    Quando os ficheiros são gerados de forma controlada:

    • Mesmo sistema de origem
    • Mesmo template
    • Sem elementos dinâmicos
    • Sem timestamps automáticos

    Lógica do processo (alto nível)

    1. Obter o conteúdo dos dois ficheiros
      (SharePoint, OneDrive, email, HTTP request, etc.)
    2. Converter para texto (caso venha em binário)
    3. Comparar diretamente as duas strings

    Exemplo de condição no Power Automate

    TextoHTML_1 é igual a TextoHTML_2

    Problema comum

    Basta existir:

    • Um espaço extra
    • Uma quebra de linha diferente
    • Um comentário com timestamp
    • Um atributo em ordem diferente

    … e a comparação falha, mesmo que visualmente os ficheiros sejam iguais.

    Conclusão: útil apenas em cenários muito controlados.

    Opção B — Normalizar antes de comparar (a mais útil no mundo real)

    Esta é, de longe, a abordagem mais prática no dia a dia.

    A ideia é simples:
    👉 limpar o “ruído” do HTML antes da comparação.

    Ou seja, transformar os dois ficheiros numa versão mais previsível e estável.

    Técnicas de normalização que funcionam bem

    Estas técnicas resolvem a maioria dos casos práticos:

    • Remover quebras de linha (\r, \n)
    • Remover tabs (\t)
    • Reduzir múltiplos espaços para um só
    • Converter tudo para lowercase (em certos cenários)
    • Remover partes dinâmicas:
      • IDs gerados automaticamente
      • Tokens
      • Timestamps
      • GUIDs

    Exemplos práticos de expressões no Power Automate

    Assumindo que já tens duas variáveis de texto:

    • html1
    • html2

    Remover quebras de linha e tabs

    replace(

      replace(

        replace(variables(‘html1’), ‘\r’, ”),

        ‘\n’, ”

      ),

      ‘\t’, ”

    )

    Repete o mesmo para html2.

    Reduzir espaços duplos

    Infelizmente, o Power Automate não tem regex nativa, por isso por vezes é necessário aplicar o replace várias vezes:

    replace(<texto>, ‘  ‘, ‘ ‘)

    Em casos mais problemáticos, aplicas esta operação 2 ou 3 vezes em sequência.

    Converter para lowercase (opcional)

    toLower(<texto_normalizado>)

    Útil quando não te interessa distinguir entre maiúsculas e minúsculas nos elementos HTML.

    Comparação final

    Depois de normalizares ambos os textos:

    • html1_normalizado
    • html2_normalizado

    A comparação torna-se muito mais fiável:

    html1_normalizado é igual a html2_normalizado

    E de repente, aquilo que antes parecia impossível começa a funcionar com consistência.

    Conclusão

    Comparar HTML no Power Automate não é um problema técnico — é um problema de abordagem.

    Se comparares HTML “em bruto”, vai haver falsos positivos constantemente.
    Se normalizares primeiro, consegues construir fluxos robustos e confiáveis.

    A regra prática é simples:
    Nunca compares HTML antes de o tornares previsível.

     

    Html_Compare-1024x683 Comparar dois ficheiros HTML no Power Automate
    clicopt

    Deixe a sua mensagem

    Show Buttons
    Hide Buttons