Definição
XSLT na transformação de documentos é o uso da linguagem XSLT, padronizada pelo W3C, para converter um arquivo XML em outro formato, como HTML, texto ou um novo XML com estrutura diferente. No contexto fiscal, serve para gerar visualizações de notas, adaptar layouts entre sistemas e extrair dados de XMLs de NF-e, NFS-e ou CT-e.
Também conhecido como: XSLT, Extensible Stylesheet Language Transformations, Transformação XSL, Transformação XSLT, Folha de estilo XSLT, XSL Transformations
O que é XSLT e como funciona?
XSLT é uma linguagem feita especificamente para transformar documentos XML. Em vez de escrever um programa que lê o arquivo linha por linha, você cria uma folha de estilo com regras do tipo: quando encontrar tal elemento, produza tal resultado.
O processo envolve três peças: o XML de entrada (por exemplo, o XML de uma NF-e), a folha de estilo XSLT com as regras e um processador XSLT, que é o software que aplica essas regras. Para localizar as informações dentro do XML, o XSLT usa outra linguagem chamada XPath, que funciona como um endereço, apontando, por exemplo, para o valor total da nota ou o CNPJ do emitente.
O resultado pode ser uma página HTML, um texto simples, um CSV ou um novo XML. O arquivo original não é modificado: a transformação sempre gera um documento novo.
Para que serve XSLT na área fiscal?
O uso mais conhecido é gerar uma visualização legível a partir do XML fiscal. Um XML de NF-e é feito para máquinas, não para pessoas, e uma folha XSLT pode montá-lo em HTML com cabeçalho, itens e totais, servindo de base para relatórios ou documentos auxiliares.
Outro uso comum é a conversão de layouts. Na NFS-e, por exemplo, diferentes municípios e padrões historicamente usaram estruturas de XML distintas, e uma camada de XSLT pode traduzir um formato interno do sistema para o layout exigido em cada caso, ou o contrário.
Também serve para extrair dados: um sistema pode aplicar XSLT em XMLs recebidos de fornecedores para gerar arquivos de importação para o ERP, planilhas de conferência ou relatórios fiscais.
Aplicar XSLT altera a validade do XML fiscal?
Não, desde que o XML autorizado seja preservado. O documento com validade jurídica é o XML original, assinado digitalmente e autorizado pelo fisco. Qualquer arquivo gerado por XSLT é apenas uma representação ou um derivado dele.
Se alguém transformar o XML e tentar usar o resultado como se fosse o documento original, a assinatura digital deixará de conferir, porque qualquer alteração no conteúdo assinado invalida a assinatura. Por isso, a regra prática é guardar sempre o XML autorizado intacto e tratar as saídas do XSLT como cópias para visualização ou integração.
Qual a diferença entre usar XSLT e converter o XML com código comum?
Com código comum, em linguagens como Java ou JavaScript, o desenvolvedor lê o XML, monta objetos e gera a saída manualmente. Isso dá flexibilidade total, mas mistura regras de layout com a lógica do sistema.
Com XSLT, as regras de transformação ficam separadas em um arquivo próprio, que pode ser alterado sem recompilar a aplicação. É uma vantagem quando há muitos layouts parecidos para manter. Por outro lado, a sintaxe do XSLT é pouco familiar para muitos desenvolvedores e lógicas complexas, como cálculos tributários, costumam ficar mais claras em código convencional. Muitas equipes hoje preferem converter o XML para JSON e trabalhar com ele na linguagem do próprio sistema.
Quais cuidados tomar ao usar XSLT com documentos fiscais?
O erro mais frequente envolve namespaces. Os XMLs fiscais declaram um namespace, e uma expressão XPath que ignora isso simplesmente não encontra nada, gerando saídas vazias sem mensagem de erro clara.
Também é importante saber qual versão do XSLT o processador suporta. A versão 1.0 é a mais amplamente disponível, enquanto as versões 2.0 e 3.0 trazem recursos úteis, como melhor tratamento de datas e números, mas nem todo ambiente as oferece.
Quando a saída for um novo XML que será enviado a outro sistema, vale validá-la contra o esquema XML esperado. E, por segurança, convém restringir funções que acessam arquivos ou endereços externos ao processar XMLs recebidos de terceiros.
É preciso usar XSLT ao emitir notas por API?
Em geral, não. Quando a emissão é feita por uma API fiscal, o sistema costuma enviar os dados em JSON e receber de volta o XML autorizado, o PDF do documento auxiliar e o status, sem precisar montar layouts manualmente.
O XSLT continua útil em necessidades específicas, como criar relatórios personalizados a partir dos XMLs baixados, integrar com sistemas legados que só trabalham com XML ou adaptar dados de notas recebidas para importação no ERP.
Exemplos de XSLT na transformação de documentos
- Um ERP aplica uma folha XSLT sobre os XMLs de NF-e de entrada para gerar um CSV com fornecedor, CFOP, valor dos itens e ICMS, usado na conferência antes do lançamento contábil.
- Um software de gestão de serviços mantém um formato interno único de NFS-e e usa uma folha XSLT para cada padrão municipal, convertendo os dados para a estrutura exigida em cada cidade.
- Uma transportadora transforma o XML do CT-e em uma página HTML resumida para que o atendimento consulte remetente, destinatário e valor do frete sem abrir o arquivo bruto.
- Um marketplace gera, a partir dos XMLs autorizados de NFC-e, um relatório HTML diário com totais por forma de pagamento, mantendo os XMLs originais armazenados sem alteração.
Perguntas frequentes
O que significa a sigla XSLT?
Significa Extensible Stylesheet Language Transformations. É a parte da família de padrões XSL dedicada a transformar documentos XML em outros formatos.
Posso gerar o DANFE com XSLT?
É possível gerar uma versão em HTML com XSLT e depois convertê-la em PDF, mas o layout precisa seguir as regras oficiais do documento auxiliar. Muitas soluções de emissão já entregam o PDF pronto, dispensando esse trabalho.
XSLT funciona com JSON?
O XSLT foi criado para XML. A versão 3.0 trouxe recursos para ler e produzir JSON, mas o suporte depende do processador usado. Para dados nativamente em JSON, normalmente se usam outras ferramentas.
O arquivo gerado por XSLT tem valor fiscal?
Não. O valor jurídico está no XML original assinado e autorizado. O resultado da transformação é apenas uma representação ou um dado derivado, útil para consulta e integração.
Atualizado em · Como produzimos este glossário
