Python - 需要解析许多XML文件的所有元素。最快的解析器?

时间:2012-02-22 02:52:41

标签: python xml pickle

我有数百个小的(大约千字节)XML文件,我需要在运行时使用它们的信息。这些XML文件中的所有数据对我都很有用,而不仅仅是一些。

在运行时,由于我需要其中一个信息,我可以构造一个ElementTree,解析XML文件,并递归迭代它 - 导致我保留的python对象并丢弃DOM。但是,如果我要发送XML文件并在运行时解析它们,我想知道我是否应该查看仅向前解析器而不是基于DOM的解析器。

鉴于这个数据在构建时是静态的,也许我甚至应该将XML解析为python对象,腌制它们,运送它们,并在运行时取消它们。我还没有使用酸洗 - 它会允许词典的用户等吗?或者它是否适用于非常基本的数据结构?

希望我很清楚 - 我在运行时会使用XML文件中的大量数据。想知道访问这些数据的速度最快(在运行时)。一旦访问它,我不介意在运行时把它留在内存中。

如果有用的话可以共享一个数据示例(无论是XML格式还是我希望python类/对象看起来像什么)......

编辑:有些人提到了lxml。我会去研究一下。任何人都有使用lxml和un-pickling从xml解析数据的链接吗?

1 个答案:

答案 0 :(得分:3)

lxml是Python中最快的XML解析器。

除非大小是个问题,否则我会将其保留为XML格式。如果速度有问题,请将XML文件组合在一起。

根据您的数据,将您的信息放入SQLite数据库可能也是一个不错的选择。