zoukankan      html  css  js  c++  java
  • 替换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

    代码
    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'

  • 相关阅读:
    Java文件之NIO核心组件之三选择器
    plsql备份表---只是表---不包含表数据
    根据id来大量删除数据between
    符号的问题
    excel表格中添加单引号的方法
    oracle中insert 多条数据方法
    sql developer以字段来删除大量数据
    Day 29
    Day 28
    Day 27
  • 原文地址:https://www.cnblogs.com/linn/p/1777239.html
Copyright © 2011-2022 走看看