shell生成简单格式的xml实例

以下是shell代码:
create_xml.sh


#! /bin/bash

#author: dengzhaoqun #date: 201202/14

outfile=out tabs=0

put(){  echo '<'${*}'>' >> $outfile }

put_head(){  put '?'${1}'?' }

out_tabs(){  tmp=0  tabsstr=""  while [ $tmp -lt $((tabs)) ]  do   tabsstr=${tabsstr}'\t'   tmp=$((tmp+1))  done  echo -e -n $tabsstr >> $outfile }

tag_start(){  out_tabs  put $1  tabs=$((tabs+1)) }

tag_end(){  tabs=$((tabs-1))  out_tabs  put '/'${1} }

tag_value(){  out_tabs  str=""  str=${1}' value="'${2}'"/'  put $str }

以下是测试代码:
ts_xml.sh


#! /bin/bash

#author: dengzhaoqun #date: 20120215

source './create_xml.sh' put_head 'xml version='1.0' encoding="GBK"' tag_start '投递信息' tag_start '硬件' tag_value '网卡' 1 tag_end '硬件' tag_end '投递信息'

生成的xml文件如下


<?xml version=1.0 encoding="GBK"?>

<投递信息>

 <硬件>

  <网卡 value="1"/>

 </硬件>

</投递信息>