xml_handle

“”"
modify xml for run cpipe
“”"
import xml.etree.ElementTree as ET
import os
import re

def version_xml_handle():
return “xml_handel.py ver 1.0.0.1”

def parse_xml(xml_name):
tree = ET.parse(xml_name)
root = tree.getroot()
return root, tree

def write_xml(tree, out_filename):
tree.write(out_filename, encoding=“utf-8”, xml_declaration=True)

def find_nodes(root, node_name):
return root.findall(node_name)

def get_key(node, key_name):
if node.find(key_name) != None:
return node.find(key_name).text
return None

def change_key(root, key_name, value):
root.find(key_name).text = value

def replace_param(root, com_data, param_name, param_data, com_class="", prefix=False):
“”"
replace xml param with new input param by
“”"
components = find_nodes(root, ‘component’)
output = False
# print "replace " , com_data, prefix
for c in components:
if com_class == “”:
name = find_nodes(c, ‘name’)
if name.len() == 0 or name[0].text != com_data:
continue
else:
class_ = find_nodes(c, ‘class’)
if class_.len() == 0 or class_[0].text != com_class:
continue
# print name[0].text
parameters = find_nodes(c, ‘parameters’)
if parameters.len() != 0:
parameter = find_nodes(parameters[0], param_name)
if parameter.len() != 0:
if prefix is True:
if parameter[0].text[0] != “":
parameter[0].text = "
” + parameter[0].text
parameter[0].text = param_data + parameter[0].text
else:
parameter[0].text = param_data
output = True
if com_class == “”:
break
if output is False:
print(“find %s in %s failed.” % (param_name, com_data))
return output

def overwrite_xml_param(xml_name, com_name, pattern, com_class=""):
root, tree = parse_xml(xml_name)
for name, data in pattern.items():
replace_param(root, com_name, name, str(data), com_class)
write_xml(tree, xml_name)

def prefix_xml_param(xml_name, com_name, pattern, com_class=""):
root, tree = parse_xml(xml_name)
for name, data in pattern.items():
replace_param(root, com_name, name, str(data), com_class=com_class, prefix=True)
write_xml(tree, xml_name)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值