写一个对象序列化为 XML 格式的函数
时间: 2023-12-03 16:44:22 浏览: 31
下面是一个 Python 实现的对象序列化为 XML 格式的函数:
```python
import xml.etree.ElementTree as ET
def serialize_to_xml(obj, root_node_name='root'):
root = ET.Element(root_node_name)
_serialize_to_xml(root, obj)
return ET.tostring(root)
def _serialize_to_xml(parent, obj):
if isinstance(obj, dict):
for key, value in obj.items():
child = ET.Element(key)
parent.append(child)
_serialize_to_xml(child, value)
elif isinstance(obj, (list, tuple)):
for item in obj:
child = ET.Element('item')
parent.append(child)
_serialize_to_xml(child, item)
else:
parent.text = str(obj)
```
该函数接收一个对象作为参数,并将其序列化为 XML 格式的字符串。可以通过指定根节点名称来自定义生成的 XML 根节点名称。该函数使用了 Python 内置的 `xml.etree.ElementTree` 模块来构建 XML 树,并通过递归遍历对象中的各个属性来生成对应的 XML 元素。对于字典类型的属性,函数会将其每个键值对转换为一个 XML 元素;对于列表或元组类型的属性,函数会将其每个元素转换为一个名为 `item` 的 XML 元素;对于其他类型的属性,函数会将其文本值作为 XML 元素的文本内容。最后,函数返回生成的 XML 字符串。