读取XML的方式有很多,既可以一次(DOM),也可以一次一位(SAX)。我已经使用SAX或lxml迭代读取大型XML文件(例如6.5GB 压缩的 Wikipedia转储)。
但是,在对该XML文件进行了一些迭代处理(在Python中使用ElementTree)之后,我想将(新)XML数据写到另一个文件中。
是否有用于迭代写出XML数据的库?我 可以 创建XML树,然后将其写出,但是如果没有ram的话就不可能实现。是否有将XML树迭代地写入文件的方法?一次一点?
我知道我可以自己用print "<%s>" % tag_name等生成XML ,但这似乎有点… 骇人 。
print "<%s>" % tag_name
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)