迭代地在python中编写XML节点

有许多方法可以读取XML,包括一次性(DOM)和一次一位(SAX).我使用SAX或lxml迭代读取大型XML文件(例如压缩6.5GB的维基百科转储).

但是,在对该XML文件进行一些迭代处理(使用ElementTree的python)之后,我想将(新)XML数据写出到另一个文件.

是否有任何库可以迭代地写出XML数据?我可以创建XML树,然后将其写出来,但如果没有大量的ram,这是不可能的.反正有迭代地将XML树写入文件吗?一次一点?

我知道我可以用print“<%s>”自己生成XML %tag_name等,但这似乎有点…… hacky.

解决方法:

Fredrik Lundh的elementtree.SimpleXMLWriter将允许您逐步写出XML.这是模块中嵌入的演示代码

from elementtree.SimpleXMLWriter import XMLWriter
import sys

w = XMLWriter(sys.stdout)

html = w.start("html")

w.start("head")
w.element("title", "my document")
w.element("Meta", name="generator", value="my application 1.0")
w.end()

w.start("body")
w.element("h1", "this is a heading")
w.element("p", "this is a paragraph")

w.start("p")
w.data("this is ")
w.element("b", "bold")
w.data(" and ")
w.element("i", "italic")
w.data(".")
w.end("p")

w.close(html)

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念