欢迎访问宙启技术站
智能推送

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文件之间的相互转换。