WEB开发网
开发学院软件开发Python 将 XML 文档作为对象的“Python 化”处理 (II) 阅读

将 XML 文档作为对象的“Python 化”处理 (II)

 2007-03-30 12:26:26 来源:WEB开发网   
核心提示: 向前一步:如何使用xml_objectify使用 xml_objectify 很简单,而且在模块 docstring注释中有详细记载,将 XML 文档作为对象的“Python 化”处理 (II)(2),让我们快速浏览一下一些样本代码:从 XML 文档创建 Python对象from xml_

向前一步:如何使用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()
        

如您所见,从常规 XML 文档创建本机 Python对象有两个步骤。首先创建一个类似于 DOM的中间工厂对象(即用于创建其它对象的对象)。然后,从 XML_Objectify 实例中生成一个或多个 Python对象实例。请注意,应该使用 xml_pickler 来处理特殊的 PyObjects.dtd 格式文档。(请参阅 XML 问题 #1了解有关 xml_pickle 的信息。)

也可以在同一行上执行这两步。例如:

在一行中创建 XML/Python 对象

py_obj = XML_Objectify(
    'address.xml').make_instance()
        

当然,在后一种情况中,不保留工厂对象来产生更多本机对象,而且也将清除包含它的完整DOM 实例的 ._dom 数据成员。

为进行比较,下例显示了使用 Python 创建 DOM 对象有多简单:

从 XML 文档创建 DOM 对象

from xml.dom.utils import FileReader
dom_obj =
FileReader().readXml(open('address.xml'))

FileReader().readXml() 需要实际的文件对象,而 XML_Objectify() 可以接受文件对象或者普通文件名。在这两种情况下,创建对象是一个两行的操作。

使用 xml_objectify 模块和 xml.dom 软件包的不同之处在于最后得到的对象类型。Python DOM 对象是真正的Python 对象,但它的属性和方法与原始 XML文档的数据和结构对应程度并不象 XML_Objectify 对象那样接近。Python DOM 对象的属性通常嵌套了 .children 列表,这些列表在语义上并没有什么太大的帮助。要访问样本文档中同一个XML 属性,可以使用 xml_objectify 的第一行,也可以使用DOM 的以下四行。下面显示了这四行:

上一页  1 2 3 4 5  下一页

Tags:XML 文档 作为

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接