前言
近日工作中,遇到了一个场景———需要对xml文件中所有元素的文本内容替换为空,并导出为新的xml。手动替换着实是耗费时间,可以采用python minidom对xml读写进行批量操作。本文主要针对这样的简单的使用场景做分享。
PS||: xml长这样:
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<!--年级信息-->
<Grade>一年级</Grade>
<ClassesInfo>
<ClassInfo>
<!--班级信息-->
<Class>一班</Class>
<!--班级人数-->
<NumberOfStudents>35</NumberOfStudents>
<!--班主任-->
<Teacher>王老师</Teacher>
</ClassInfo>
<ClassInfo>
<!--班级信息-->
<Class>二班</Class>
<!--班级人数-->
<NumberOfStudents>36</NumberOfStudents>
<!--班主任-->
<Teacher>张老师</Teacher>
</ClassInfo>
</ClassesInfo>
</ROOT>
minidom 使用
为了达到前言中描述的目的,我们大概需要以下几个步骤:
- 读取res.xml文件
- 遍历获取含有文本内容的元素
- 替换文本内容为空
- 将新的xml写入到output.xml文件中
xml读取
在minidom中有两种读取xml的方式:
- def parse(file, parser=None, bufsize=None) 读取xml文件或xml文件对象
- def parseString(string, parser=None) 读取xml格式的字符串String
以下是使用示例
- parse