Python 序列化数据为XML格式,下面介绍一个使用Python内置的库进行XML序列化的方法,这将从单独的标签构建出一个文档。一种常用的替代方法是使用Python的自省特性来进行检查并将Python对象和类名映射为XML标记和属性。
XML序列化过程如下:
这样就创建了一个顶层元素<series>
,并将子元素<row>
放在它的下面。在每一个子元素<row>
内创建了<x>
标签和<y>
标签,并将文本内容赋给了各个标签。
使用ElementTree
库作为构建XML文档的接口往往是命令式的,因此它不适合函数式设计。除了命令式做法外,请注意并没有创建DTD(documnet type definition,文档类型定义)或XSD(XML schemas definition,XML模式定义),也尚未为标签分配合适的命名空间,同时省略了<?xml version="1.0"?>
处理指令,而通常它会作为XML文档的第一项。
函数XML.tostring()
有一个类型提示用于声明返回的是str
。这样做通常是正确的,但当提供的是encoding
参数时,结果的类型会变为bytes
。并没有简单的方法来根据参数的值判断返回值的类型,因此使用显式的cast()
将实际类型告知mypy。
更高级的序列化库可能会有所帮助,访问https://wiki.python.org/moin/PythonXml查看更多选择。