Esta semana estava fuçando em umas coisas para um script e achei neste blog aqui uma dica bem legal sobre como ler um xml em shell script.
Eu, pelo menos, precisava ler um xml de retorno do Google da API do Google Maps.
Como eu não queria processar isto via uma outra linguagem ( como o Python ) cacei uma solução em shell script.
Vou pegar um trecho de xml qualquer ( não o que eu processei, para usar como exemplo ):
<Logentry>
<name>Ataliba Teixeira</name>
<id>01</id>
<game>Angry Birds</game>
</Logentry>
O código é este abaixo :
#!/bin/bash
#Looking for four keywords in here
for key in name id game
do
OUTPT=`grep $key log.xml | tr -d '\t' | sed 's/^\([^<].*\)$/\1/' `
eval ${key}=`echo -ne \""${OUTPT}"\"`
done
# Getting the results in four specific arrays
namearr=( `echo ${name}` )
idarr=( `echo ${id}` )
gamearr=( `echo ${game}` )
#Print all Arrays
echo ${namearr[@]}
echo ${idarr[@]}
echo ${gamearr[@]}
Se tiverem uma outra solução mais legal, posta aí para discutirmos.