在 David Mertz 新的有关“XML 问题”专栏的第二部分 --也是他对在 XML 和 Python之间创建更加无缝的集成而不断进行探求的一部分 -- 中介绍了 xml_objectify 模块。
项目介绍
XML 问题 #1介绍了在 XML 和 Python之间创建更加无缝和自然集成的项目。 参考资料部分提供了到其它 developerWorks文章的链接,在这些文章中,我讨论了一些常规Python 编程技术和其它有关 XML/Python 的主题。
获得兼容的 XML-SIG 更新
XML-SIG 发行版在 beta 版本中更改相当频繁。这些更改往往影响到 xml_objectify 的功能。因此,可以从 参考资料中下载已知与 xml_objectify 兼容的 XML-SIG 版本。
当 XML-SIG 发行版正式发行并且/或者当 XML 软件包作为正式 Python发行版的一部分时,当前的 xml_objectify 将进行更新以对正式发行版使用。有关当前 xml_objectify 的详细信息,请参阅 参考资料。
因为在 XML 和 Python 之间存在不对称性,所以该项目 --至少在最初时 -- 包含两个单独的模块: xml_pickle 和 xml_objectify ,前者用于以 XML 表示任意的 Python对象,后者用于将 XML 文档本机表示为 Python 对象。本文主要讨论 xml_objectify 。
在 Python 中,例如 xmllib 、 xml.sax 、 pyxie 和 xml.dom 这样的模块和软件包提供了处理 XML社区中一些公共 XML文档的方法。您可能熟悉应用于其它编程语言的类似模块和库。实际上,许多模块都基于语言中性的XML 标准,它们通常实现以 XML 为中心的处理文档和对象的方法。
常规 XML 协议的 Python实现提供了以不同方法进行编程的灵活性。例如,可以使用如 DOM这样的可移植标准,这样,使用一种语言的程序员可以方便地对以另一种语言编写的面向DOM 的代码进行操作。不过, Python程序员有时可能宁愿以更类似于“正常”Python的方法进行编码。在许多情况下,XML 概念性框架看起来似乎更接近于Python,而不是 Python 的一个组成部分。因此,我开发了一系列用于 XML文档的“Python 化”模块。
向前一步:如何使用xml_objectify
使用 xml_objectify 很简单,而且在模块 docstring注释中有详细记载。让我们快速浏览一下一些样本代码:
从 XML 文档创建 Python对象 from
xml_objectify
import
XML_Objectify
xml_obj = XML_Objectify(
'address.xml')
py_obj = xml_obj.make_instance()
更多内容请看PCdog.com--Python编程 Python相关文章专题
