XML文件的序列化与反序列化:xml.etree.cElementTree()的应用
发布时间:2023-12-16 08:07:02
XML文件的序列化与反序列化是将XML数据转换为特定格式的字符串或将特定格式的字符串转换为XML数据的过程。
在Python中,可以使用xml.etree.ElementTree模块中的cElementTree类来实现XML的序列化与反序列化操作。cElementTree是ElementTree的C语言实现,具有更高的性能。
下面是XML文件序列化与反序列化的使用例子:
1. XML文件序列化:将Python字典数据转换为XML文件
import xml.etree.cElementTree as ET
# 创建一个字典数据
data = {
'name': 'Tom',
'age': 25,
'gender': 'male'
}
# 创建根节点
root = ET.Element('person')
# 遍历字典数据创建子节点
for key, value in data.items():
child = ET.SubElement(root, key)
child.text = str(value)
# 创建XML文件
tree = ET.ElementTree(root)
tree.write('person.xml')
上述代码创建了一个名为person.xml的XML文件,内容如下:
<person>
<name>Tom</name>
<age>25</age>
<gender>male</gender>
</person>
2. XML文件反序列化:将XML文件转换为Python字典数据
import xml.etree.cElementTree as ET
# 解析XML文件
tree = ET.ElementTree(file='person.xml')
root = tree.getroot()
# 创建一个空字典
data = {}
# 遍历XML节点,将节点名称和文本内容存入字典
for child in root:
data[child.tag] = child.text
print(data)
上述代码将解析person.xml文件,并将XML节点名称和文本内容存入一个字典中,最后打印输出字典内容:
{'name': 'Tom', 'age': '25', 'gender': 'male'}
通过上述例子可以看出,使用xml.etree.cElementTree模块可以方便地实现XML文件的序列化与反序列化操作,可以轻松地转换Python字典数据与XML文件之间的相互转换。
