将python对象转换为xml并再次转换。

xml_marshaller的Python项目详细描述


简介

此模块允许将简单的python数据类型封送到 自定义XML格式。marshaller和unmarshaller类可以是 子类,以便将封送处理实现为不同的XML DTD。 最初的作者是xml-sig(xml-sig@python.org)。

完全兼容pyxml实现,支持命名空间 用于XML输入/输出。

用lxml实现

安装

python setup.py安装

测试

python setup.py测试

用法

对于简单的串行化和非串行化:

>>> from xml_marshaller import xml_marshaller
>>> xml_marshaller.dumps(['item1', {'key1': 1, 'key2': 'string'}])
'<marshal><list id="i2"><string>item1</string><dictionary id="i3"><string>key1</string><int>1</int><string>key2</string><string>string</string></dictionary></list></marshal>'
>>> xml_marshaller.loads(xml_marshaller.dumps(['item1', {'key1': 1, 'key2': 'string'}]))
['item1', {'key2': 'string', 'key1': 1}]

可以使用类似文件的对象:

>>> from xml_marshaller import xml_marshaller
>>> from StringIO import StringIO
>>> file_like_object = StringIO()
>>> xml_marshaller.dump('Hello World !', file_like_object)
>>> file_like_object.seek(0)
>>> file_like_object.read()
'<marshal><string>Hello World !</string></marshal>'
>>> file_like_object.seek(0)
>>> xml_marshaller.load(file_like_object)
'Hello World !'

xml_marshaller还可以输出带有限定名的xml:

>>> from xml_marshaller import xml_marshaller
>>> xml_marshaller.dumps_ns('Hello World !')
'<marshal:marshal xmlns:marshal="http://www.erp5.org/namespaces/marshaller"><marshal:string>Hello World !</marshal:string></marshal:marshal>'

您也可以使用自己的uri:

>>> from xml_marshaller.xml_marshaller import Marshaller
>>> marshaller = Marshaller(namespace_uri='http://my-custom-namespace-uri/namespace')
>>> marshaller.dumps('Hello World !')
'<marshal:marshal xmlns:marshal="http://my-custom-namespace-uri/namespace"><marshal:string>Hello World !</marshal:string></marshal:marshal>'

历史记录

1.0.2(2019-02-25)

  • Python2修复。

1.0.1(2018-11-12)

  • 修复更改日志。

1.0(2018-11-12)

  • 停止区分Unicode和字节,并始终返回“str”

0.10(2018-09-12)

  • 添加对Python3的支持

0.9.7(2010-10-30)

  • 增强鸡蛋折叠结构 [尼古拉斯·德拉比]
  • 改进测试 [尼古拉斯·德拉比]
  • 添加XSD架构 [尼古拉斯·德拉比]

0.9.6(2010-10-12)

  • [fix]支持布尔转换 [尼古拉斯·德拉比]

0.9.5(2010-09-01)

  • [修正]文件格式 [卢卡斯诺瓦克]

0.9.4(2010-09-01)

  • [修复]实例现在已正确地解组。 [塞德里克·德·圣马丁]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用于批量操作的java RESTful API分块响应   java读取在线存储的文本文件   在Java ME中将双精度舍入到小数点后5位   java查找一个数字的最接近因子   java更改JMenuBar的字体   java Kmeans聚类算法运行时间和复杂性   java是否可以阻止try catch返回null   java内容解析器指向具有正确URI的错误表   java Android Kotlin插装测试未被识别为插装测试   java TestNG@Dataprovider   在forloop和print语句中声明变量时发生java错误   java在Android Studio 3中设置JNI