Ferramenta de linha de comando para expansão da entidade XML

1

Eu preciso alimentar dados XML em um sistema como parte de um script de teste.

O script de teste em si é um script de shell.

Os dados XML contêm registros de data e hora em atributos, que precisam estar próximos do horário atual. (Na verdade, há dois timestamps, um na hora atual e outro entre alguns minutos e algumas horas no futuro.) O restante dos dados é estático (ou seja, há um conjunto de diferentes arquivos XML, um por teste caso).

Eu estava pensando em abordar isso usando entidades externas e gerando a definição de entidade por meio de um script. Problema: o sistema do consumidor suporta apenas um subconjunto de XML (contando com o analisador XML simplificado).

Assim, minha próxima ideia era executar o XML por meio de um analisador que resolvesse entidades externas e gerasse XML de arquivo simples com todas as entidades e inclusões expandidas. Esses analisadores estão disponíveis como ferramentas de linha de comando (preferencialmente nos repositórios Debian / Ubuntu)?

    
por user149408 21.02.2018 / 21:11

1 resposta

2

xmlstarlet fará o truque e está disponível nos repositórios do Ubuntu (a partir de 16.04); presumivelmente também dos repositórios do Debian.

A sintaxe é:

xmlstarlet c14n foo.xml > bar.xml

bar.xml será uma versão canonicalizada de foo.xml , com todas as entidades resolvidas.

    
por 21.02.2018 / 21:11