2011-01-19 52 views
0

我有一个数据模型或一个类的对象,我需要通过读取一个xml文件来初始化它,或者从头开始创建这个对象并将其输出到一个xml文件中。以前,我只是使用python的字符串操作来读取xml(file.read + string.find)并写入xml(file.write),而不进行错误检查。在python中生成带有sax2的xml

现在我想用Sax2来做到这一点。我知道如何为阅读做,但不是很清楚写。它看起来像sax2用于有原始xml的情况,并且您想在某些修改后输出。在我的情况下,我想输出我的数据模型到XML,根本没有原始的XML。我不知道萨克斯2是好还是适合这个,或者我应该继续使用我以前的方式。使用python从/向XML输入/输出类对象的更好方法是什么?该类非常简单(只是列表信息的列表集合,即根 - >儿童 - >孙辈)和小尺寸。

感谢您的任何建议。

回答

2

尝试pythonic XML处理方式:ElementTree

使用`xml.etree.ElementTree.ElementTree.write()生成XML输出很容易。

write(file, encoding="us-ascii", xml_declaration=None, method="xml")

写入元素树到一个文件,如XML。文件是一个文件名,或者是一个为写入而打开的文件对象。编码1是输出编码(默认为US-ASCII)。 xml_declaration控制是否应该将XML声明添加到文件中。永远使用False,永远为True,仅当US-ASCII或UTF-8(默认值为None)时才使用False。方法是“xml”,“html”或“text”(默认为“xml”)。返回编码的字符串。

示例性负载ElementTree从文本文件对象:

>>> from xml.etree.ElementTree import ElementTree 
>>> tree = ElementTree() 
>>> tree.parse("index.xhtml") 
+0

能做些什么读取和使用ElementTree的写?因为我知道如何用Sax2进行阅读,所以我有点犹豫要用其他方式。感谢您的意见,我会看一看 – pepero 2011-01-19 16:00:54