微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

迭代地在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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。