有很多方法可以读取XML,包括一次读取(DOM)和一次读取一位(SAX)。我曾使用SAX或lxml迭代读取大型XML文件(例如wikipediadump,它是6.5GB压缩的)。在
但是,在对该XML文件进行一些迭代处理(在python中使用ElementTree)之后,我希望将(新的)XML数据写入另一个文件。在
有没有库可以迭代地写出XML数据?我可以创建XML树,然后将其写出,但是如果没有大量的ram,这是不可能的。有没有办法迭代地将XML树写入文件?一次一点?在
我知道我可以自己用print "<%s>" % tag_name
等来生成XML,但这似乎有点。。。哈奇。在
Fredrik Lundh的elementtree.SimpleXMLWriter将允许您增量地编写XML。以下是嵌入模块中的演示代码:
如果您没有找到其他任何东西,我更希望从ElementTree继承并创建一个“iteractiveElementTree”,并在其中添加一个“file”属性。我将这些节点的子类化为一个“start_tag_comitted”属性和一个“commit”方法。一旦被调用,这个“commit”方法将调用子树的render方法-从最远的父级开始,其中e“start_tag_comitted”为false。有了这个字符串,我就可以手动去除当前节点父节点的结束标记。有必要处理以前被反对但没有关闭的父母兄弟姐妹。在
然后,我将从内存模型中删除“committed”节点。 您还需要为每个节点指定一个节点父节点,因为ElementTree不这样做。在
(如果没有更好的答案,请写信给我,如果你被困在那里,我可以实现这一点)
如果您正在阅读XML方言1,并且必须编写XML方言2,那么使用xslt编写转换过程不是一个好主意吗?你甚至不需要这样的源代码。在
相关问题 更多 >
编程相关推荐