How to read XML file by using shell script ?

read-xml-file-using-shell-script

read-xml-file-using-shell-script

This was like the first time where I had to write something that will be able to read something out of a XML file using a shell script. Usually I would use Python/Perl as my favorite choices in such a scenario but in this one I really *had* to do all within a shell script.

This is an example of the type of XML file I had to read:

Fixed a new bug
Shoaib Mir
Sun, 02 May 2010
shoaibmir[@]gmail.com

I ended up having a shell script like this:

#!/bin/bash

#Looking for four keywords in here
for key in changelog name date email
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
changelogarr=( echo ${changelog} )
namearr=( echo ${name} )
datearr=( echo ${date} )
emailarr=( echo ${email} )

#Print all Arrays
echo ${changelogarr[@]}
echo ${namearr[@]}
echo ${datearr[@]}
echo ${emailarr[@]}

Which gives me an output:

shoaib@shoaib-desktop:~/Desktop$ ./readxml.sh
Fixed a new bug Shoaib Mir
Sun, 02 May 2010
shoaibmir[@]gmail.com

 

Reference:

Reading XML file using shell script