当前位置:我的异常网» XML/SOAP » 应用shell脚本读取xml的属性值和节点值

应用shell脚本读取xml的属性值和节点值

www.myexceptions.net  网友分享于:2013-11-04  浏览:300次

使用shell脚本读取xml的属性值和节点值

#FUNCRION: GetNodeValue

#DESC    : Get xmlnode value

#INPUT   : 1-XmlFilePath 2-NodeName

#OUTPUT  : nodevalue

function GetNodeValue

{

if [ $# -ne 2 ];then

echo "    error: arguments is not enough"

echo "    USAGE:            $0 XmlFilePath NodeName"

echo "    XmlFilePath       xmlfile path type[${HOME}/config/datasource/bmp-xa-ds.xml]"

echo "    NodeName          nodename type[xa-datasource-property]"

echo     e.g.:  $0 ${HOME}/config/datasource/bmp-xa-ds.xml 'xa-datasource-property name="URL"'

return

fi

CurrentTime=`date +"%Y%m%d%H%M%S"`

tmpfile="$$_$CurrentTime"

FilePath=$1

NodeName=$2

NodePre=`awk -v Node="$NodeName" 'BEGIN {split(Node,NodeAdd," ");print NodeAdd[1]}'`

FLAG=0

sed 's/>/>\n/g' $FilePath | sed 's/

do

ISFIRST=`echo $line | sed -n "/

if [ "x$ISFIRST" != "x" ]; then

FLAG=1

fi

if [ ${FLAG} -eq 1 ] ; then

echo $line >> "$tmpfile"

fi

ISSEC=`echo $line | sed -n "//"p`

if [ "x$ISSEC" != "x" ]; then

FLAG=0

fi

done

awk '{ORS=""}{print $0}' $tmpfile | awk 'BEGIN{FS=">";RS=""}{print $NF}' | sed '/^\(\s\)*$/d'

rm $tmpfile

}

#FUNCRION: GetNodeAttr

#DESC    : Get xmlnode attribute

#INPUT   : 1-XmlFilePath 2-AttrName

#OUTPUT  : node attribute

function GetNodeAttr

{

if [ $# -ne 2 ];then

echo "    error: arguments is not enough"

echo "    USAGE:            $0 XmlFilePath AttrName"

echo "    XmlFilePath       xmlfile path type[${HOME}/config/DiamBaseConfig.xml]"

echo "    AttrName          nodename type[PeerIp]"

echo "    e.g.:  $0 ${HOME}/config/DiamBaseConfig.xml PeerIp"

return

fi

FilePath=$1

AttrName=" $2="

sed 's/>/>\n/g' $FilePath | sed 's/

}

文章评论

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐