如何在不生成DOM树的情况下在python中打印xml?

时间:2015-09-17 06:10:57

标签: python xml

生成DOM树对于非常大的xml数据来说太昂贵了。有没有一种方法可以完成打印而不产生它?我使用的是python-2.7。

1 个答案:

答案 0 :(得分:1)

无论使用何种语言,在不生成树的情况下解析XML文档的方法是使用面向事件的解析器。使用这些类型的解析器,您可以向解析器提供一些事件处理程序,解析器将在处理的特定点调用它们:节点的开头,节点的结尾,数据的开头等。

因此,您可以使用这种解析器并在每次有新节点时转到新行,并在您进入节点时增加缩进并在退出节点时减少缩进。 由于这些解析器的工作方式,向前看例如节点是否适合一行是很棘手的,所以漂亮的打印可能不如使用树时那么漂亮(或者你可以,但它会很复杂)。

在python中,有3个事件驱动的解析器与标准库一起提供(没有特定的顺序):

我建议你看看它们并试着玩。