Bash's script to parse XML
ParseXmlFile.sh
#! / bin/bash
Usage ()
{
Echo "Usage:. / parseXmlFile.sh"
Exit 1
}
List_all_entity ()
{
Local IFS=\ >
While read-d\
< ENTITY CONTENT do echo $ENTITY done < $1 } list_all_content() { local IFS=\>While read-d\
< ENTITY CONTENT do echo $CONTENT done < $1 } list_all_tag_name() { local IFS=\>While read-d\
< ENTITY CONTENT do TAG_NAME=${ENTITY%% *} echo $TAG_NAME done < $1 } list_all_attributes() { local IFS=\>While read-d\
< ENTITY CONTENT do ATTRIBUTES=${ENTITY#* *} echo $ATTRIBUTES done < $1 } getattr() { ATTR_PAIR=${1#*$2=\"} echo "${ATTR_PAIR%%\"*}" } get_attributes_value() { local IFS=\>While read-d\
< ENTITY CONTENT do TAG_NAME=${ENTITY%% *} ATTRIBUTES=${ENTITY#* *} if [[ $TAG_NAME == $2 ]] then value=`getattr ${ATTRIBUTES} ${3}` echo $value fi done < $1 } get_content_value() { local IFS=\>While read-d\ < ENTITY CONTENT
Do
TAG_NAME=$ {ENTITY%% *}
If [[$TAG_NAME = = $2]]
Then
Echo $CONTENT
Fi
Done < $1
}
# main in this shell
If [$#-ne 1]
Then
Usage
Fi
If [!-f $1]
Then
Echo "fail to load data from file, file $1 not exist!"
Exit 1
Fi
List_content $1