Bash:
Trabalhando com XML

Como Fazer:

Aqui está como fazer o parse de XML em Bash. Ferramentas? xmllint e xmlstarlet. Percorrer os elementos XML? Com certeza. Exemplo com saída de amostra:

# Supondo que o xmlstarlet esteja instalado
# Instale com: apt-get install xmlstarlet

# Fazendo o parse do conteúdo XML
cat <<EOF > sample.xml
<frutas>
  <fruta nome="Maçã"/>
  <fruta nome="Banana"/>
</frutas>
EOF

# Extrair nomes com xmlstarlet
xmlstarlet sel -t -m "//fruta" -v "@nome" -n sample.xml

# A saída deve ser:
# Maçã
# Banana

Mergulho Profundo

Nos anos 90, o XML surgiu como uma alternativa mais simples ao SGML, mas mais estruturada do que o HTML. Agora, ele tem companhia – JSON, YAML, por exemplo. Mas o XML ainda está na ativa, especialmente em configurações e serviços web baseados em SOAP.

Em termos de ferramentas, o xmllint é confortável para validação de XML, consultas xpath. O xmlstarlet é o canivete suíço para truques com XML – consultar, editar, validar, transformar. Em scripts bash, eles são super-heróis para tarefas XML.

Sob o capô, o xmllint usa o libxml2 – o parser C para XML. É rápido, mas as mensagens de erro? Crípticas. E o xmlstarlet? Modelos recursivos e o suporte ao EXSLT. Difícil de entender, mas poderoso.

Veja Também