用python迭代编写XML节点

发布于 2021-01-29 15:01:16

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

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

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

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

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    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)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看