美化程序是百娘上的,很抱歉没记住原引用地。
美化程序如下:
def prettyXml(element, indent, newline, level = 0): # elemnt为传进来的Elment类,参数indent用于缩进,newline用于换行
if element: # 判断element是否有子元素
if element.text == None or element.text.isspace(): # 如果element的text没有内容
element.text = newline + indent * (level + 1)
else:
element.text = newline + indent * (level + 1) + element.text.strip() + newline + indent * (level + 1)
#else: # 此处两行如果把注释去掉,Element的text也会另起一行
#element.text = newline + indent * (level + 1) + element.text.strip() + newline + indent * level
temp = list(element) # 将elemnt转成list
for subelement in temp:
if temp.index(subelement) < (len(temp) - 1): # 如果不是list的最后一个元素,说明下一个行是同级别元素的起始,缩进应一致
subelement.tail = newline + indent * (level + 1)
else: # 如果是list的最后一个元素, 说明下一行是母元素的结束,缩进应该少一个
subelement.tail = newline + indent * level
prettyXml(subelement, indent, newline, level = level + 1) # 对子元素进行递归操作
问题描述:
element
增添前调用prettyXml
进行格式美化,并插入对应位置;出现最后一行与原有element
同行。
解决办法:
全部添加后,直接对root
进行美化,步骤如下
- 添加所有请求
insert_samples(root,sheet)
- 美化jmx文件
prettyXml(root,"\t","\r")
- 将构造好的结构 写入
jmx
文件;真正完成添加
tree.write(jmxPath,encoding='UTF-8',xml_declaration=True)
网友评论