在python中使用sax2生成xml

时间:2011-01-19 15:40:35

标签: python xml file-io sax

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

现在我想用Sax2来做这件事。我知道如何阅读,但不是很清楚写。看起来sax2用于存在原始xml并且您希望在某些修改后输出的情况。在我的情况下,我想将我的数据模型输出到xml,根本没有原始的xml。我想知道sax2是好还是适合这个,或者我应该继续使用我的旧方法。使用python从/向XML输入/输出类对象的更好方法是什么?该类非常简单(只是列表信息的列表集合,即root - > children - > grandchildren)和小尺寸。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:2)

尝试使用pythonic XML处理方式:ElementTree

使用`xml.etree.ElementTree.ElementTree.write()可以轻松生成XML输出。

  

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

     

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

从文本文件中加载ElementTree对象的示例:

>>> from xml.etree.ElementTree import ElementTree
>>> tree = ElementTree()
>>> tree.parse("index.xhtml")
相关问题