一尘不染

用python迭代编写XML节点

python

读取XML的方式有很多,既可以一次(DOM),也可以一次一位(SAX)。我已经使用SAX或lxml迭代读取大型XML文件(例如6.5GB 压缩的
Wikipedia转储)。

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

是否有用于迭代写出XML数据的库?我 可以
创建XML树,然后将其写出,但是如果没有ram的话就不可能实现。是否有将XML树迭代地写入文件的方法?一次一点?

我知道我可以自己用print "<%s>" % tag_name等生成XML ,但这似乎有点… 骇人


阅读 166

收藏
2021-01-20

共1个答案

一尘不染

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)
2021-01-20