替换XML里面的特定节点

方法一:python脚本

http://www.python.org/ftp/python/2.7/

1、tar zxvf Python-2.7.tar
2、cd Python-2.7
3、./config
4、make
5、make install

ExpandedBlockStart.gif 代码
import xml.etree.ElementTree  as  ET
import os
import sys

def update_file(input, output):
    tree 
=  ET.parse(input)
    doc 
=  tree.getroot()
    acls 
=  doc.findall( ' .//acl ' )
    
for  acl  in  acls:
        
if  (cmp(acl.attrib. get ( ' user ' ),  ' scm_controller ' ==   0 ):
            acl.clear()
            acl.
set ( ' user ' ' scm_controller ' )
            a 
=  ET.Element( ' modified_by ' )
            a.text 
=   ' hua '
            acl.append(a)
            a 
=  ET.Element( ' modified_date ' )
            a.text 
=   ' 2010.07.13.12.12.18 '
            acl.append(a)
            a 
=  ET.Element( ' all ' )
            acl.append(a)
    tree.write(output, 
" UTF-8 " , True)

def update_dir(path):
    print 
" processing %s "   %  path
    items 
=  os.listdir(path)
    
for  item  in  items:
        name 
=  os.path.join(path, item)
        
if  (os.path.isdir(name)):
            update_dir(os.path.join(name))
        elif (os.path.isfile(name) and cmp(item, 
' fileattr.xml ' ==   0 ):
            update_file(name, name)

def main(argv):    
    update_dir(argv[
1 ])

main(sys.argv)

 

 

方法二:UE

<acl user="swordbuilder">(.*\n)*.*</acl>

 

方法三:shell脚本

find -name 'fileattr.xml' | xargs perl -pi -e 's|<acl user="swordbuilder">(.*\n)*.*</acl>|<acl user="swordbuilder"><all /></acl>|g'

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值