XML é projetado como uma linguagem de marcação legível por humanos, mas apenas se for bem formatado. Se você abrir um arquivo XML, poderá não entender o conteúdo, especialmente para um arquivo XML grande. No entanto, você pode imprimir um XML em Bash ou Python para torná-lo facilmente legível por humanos. Este guia apresenta as diferentes maneiras de imprimir XML no Linux Bash e Python pretty.
Como fazer Pretty Print XML no Linux Bash e Python
Ao trabalhar com Python, você pode obter um caso em que deseja imprimir XML. Pode ser um arquivo XML externo ou o código XML incluído no script Python. Para Linux Bash, você pode querer abrir um arquivo XML em seu terminal para visualizar seu conteúdo. Seja qual for o caso, veremos as diferentes maneiras de imprimir o XML de maneira bonita.
1. Pretty Print XML em Python
Antes de nos aprofundarmos nas opções, o seguinte é o arquivo XML com o qual trabalharemos para nosso exemplo:
Em Python, você pode trabalhar com XML de duas maneiras principais. Suponha que você tenha o arquivo XML fornecido como um arquivo externo e deseja imprimi-lo de forma bonita. Você pode importar a biblioteca “xml.dom.minidom”. Depois de importado, você pode usar o Python open () para ler o conteúdo do seu arquivo externo. Depois disso, você pode usar o toprettyxml() para imprimir seu arquivo XML externo de forma bonita.
No exemplo a seguir, usamos nosso arquivo externo “details.xml” e criamos diferentes variáveis no código:
Podemos então executar nosso script Python no terminal para obter a saída bastante formatada, conforme ilustrado na figura a seguir. Observe como o uso da biblioteca DOM Python ajuda a formatar o XML de maneira organizada, tornando-o facilmente legível por qualquer pessoa que execute o script Python:
Como alternativa, se você tiver apenas um pequeno arquivo XML, poderá incorporá-lo diretamente ao seu script Python. Você ainda precisa da biblioteca DOM Python para formatar o XML interno em seu script. A função que se utiliza é a mesma que no caso de trabalhar com um arquivo XML externo, só que incluímos o XML diretamente.
Veja como incluímos o XML na imagem a seguir:
Você pode então executar seu script Python como fizemos anteriormente. Você obterá a versão de impressão bonita de seu arquivo XML em sua saída como o que obtivemos em nossa seguinte saída:
Esta opção só se aplica quando seu arquivo XML tem poucas linhas. Para um arquivo XML grande, considere abri-lo como um arquivo externo.
2. Pretty Print XML no Bash
Em seu terminal, é possível visualizar o conteúdo de arquivos incluindo XML. Por exemplo, você pode usar o comando “cat” para exibir o conteúdo do nosso arquivo “details.xml”. No entanto, a saída é ilegível devido à má formatação.
Para imprimir este arquivo XML, existem diferentes ferramentas que você pode usar. Aqui, abordaremos dois dos mais comuns. Primeiro, você pode usar o “xmlstarlet” que vem instalado na maioria dos sistemas Linux. Se não estiver disponível em seu sistema, execute o seguinte comando para instalá-lo:
sudo foto instalar xmlstarlet
Com “xmlstarlet” em seu sistema Linux, você pode imprimir seu arquivo em formato XML, conforme ilustrado no exemplo a seguir. Sua saída será formatada de maneira organizada, o que facilita a leitura:
Alternativamente, você pode usar “xmllint” para conseguir o mesmo. Comece instalando-o em seu sistema com o seguinte comando:
sudo apto instalar libxml2-utils
Depois de instalado, você pode imprimir rapidamente seu arquivo XML usando a seguinte sintaxe:
xmllint --formatar detalhes.xml
Seu XML estará formatado e facilmente legível conforme o exemplo a seguir:
Suponha que você queira criar uma saída do XML formatado. Você pode redirecionar a saída para criar um novo arquivo XML conforme mostrado no exemplo a seguir. Ao abrir o novo arquivo, você verá que tem a bonita versão impressa do XML:
Conclusão
É possível imprimir bastante os arquivos XML no Linux Bash ou Python. Com o Python, você pode imprimir bastante o XML incorporando-o ao seu código ou lendo-o como um arquivo externo. Para Linux Bash, você pode usar diferentes ferramentas de linha de comando. Este post detalhou as melhores opções para usar em ambos os casos. Experimente!