xml脚本处理遇注释消失问题:解析与创建XML的模块及相关情况

xml脚本处理遇注释消失问题:解析与创建XML的模块及相关情况

前言

最近接收到一项任务,需要把我们所写的 xml 格式的自动化脚本中特定的标签增加 guid 标识,以便依次区分案例。在此过程中出现了一个问题:经过程序处理后,xml 文件中的注释全部消失了。针对此问题,特此记录问题的解决方案。

一、使用的模块

xml.etree.ElementTree

xml.etree.ElementTree 模块提供了一个简单且高效的 API 来解析和创建 XML 数据。XML 是一种具有固有层次结构的数据格式,用树来表示最为自然。通常,通过 ElementTree 来完成与整个文档的交互,如读写文件等;而与单个 XML 元素及其子元素的交互则通过 Element 来进行。输入 xml 的所有元素并非都会出现在最终的树中。目前,输入 xml 中的注释、处理指令以及文档类型声明会被忽略。不过,可以利用 API 在构建的树中包含注释、处理指令,并将其输出到 xml 文件中。通过向 XMLParser 构造函数传递自定义的 TreeBuilder 实例,能够访问文档类型声明。

二、使用步骤 1.引入库

from xml.etree import ElementTree
import xml.etree.ElementTree as ET

2.读入数据

xml内容

<root>
	<case id="check-002" title="测试" flag="test">
		<step desc="测试">
			<Action trancode="021801" type="xml_set" server_index="2">
				<value name="//Sys_Head/SEQ_NO">{{seq_no}}value>
			Action>
			<Verify>
				<result name="RET_CODE">
					000000
				result>
				<result name="RET_MSG">
					交易成功
				result>
			Verify>
		step>
	case>
root>

封装可以读取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 = rE:\工作\interface\project\test\testcase\TCP 挡板路径下的 tcp 挡板设置.xml
    tree = read_xml(path)

总结

常用方法:

你可能想看:
« 上一篇
下一篇 »

相关推荐

python爬虫教程PDF,Python爬虫书PDF

2026年09月02日

34阅读

外国教程python,python编程教学视频

2026年09月02日

28阅读

python简明教程沈洁元,python详细基础教程

2026年09月02日

22阅读

python库包教程,python 包

2026年09月02日

27阅读

python教程大全集,python教程600集

2026年09月02日

28阅读

python入门教程完整版,python零基础入门全套教程视频

2026年09月02日

23阅读