前言一、使用的模块二、使用步骤
1.引入库2.读入数据 总结
前言
最近接收到一个任务,把我们写的xml格式的自动化脚本,特定的标签增加guid标识,依次来区分案例,中间出现了一个问题:经过程序处理后的xml文件中的注释全部消失了,针对次问题特此记录问题解决方案。
一、使用的模块
xml.etree.ElementTree
xml.etree.ElementTree模块实现了一个解析和创建XML数据的简单而高效的API。XML是一种固有的分层数据格式,最自然的表示方法是使用树。通常,与整个文档的交互(读写文件)是用ElementTree完成的,与单个XML元素及其子元素的交互是用Element完成的。并不是输入xml的所有元素都会出现在最终的树中。目前会忽略输入xml中的注释、处理指令以及文档类型声明。但是可以使用API在构建的树中包含注释、处理指令,并输出到xml文件中。可以通过向XMLParser构造函数传递自定义的TreeBuilder实例来访问文档类型声明。
from xml.etree import ElementTree import xml.etree.ElementTree as ET2.读入数据
xml内容
{{seq_no}} 000000 交易成功
封装可以读取xml注释的方法
# 可以读取xml中的注释内容
class CommentedTreeBuilder(ElementTree.TreeBuilder):
def __init__(self, *args, **kwargs):
super(CommentedTreeBuilder, self).__init__(*args, **kwargs)
def comment(self, data):
self.start(ElementTree.Comment, {})
self.data(data)
self.end(ElementTree.Comment)
def read_xml(in_path):
# 读取文件,并带有注释
parser = ET.XMLParser(target=CommentedTreeBuilder())
tree = ElementTree.parse(in_path, parser=parser)
return tree
if __name__ == '__main__':
path = r'E:工作interfaceprojecttesttestcaseTCP挡板tcp挡板设置.xml'
tree = read_xml(path)
总结
常用方法:



