【发布时间】:2010-09-25 13:34:19
【问题描述】:
我有一个完整的目录 (~103, 104) 的 XML 文件,我需要从中提取几个字段的内容。 我已经测试了不同的 xml 解析器,并且由于我不需要验证内容(昂贵),我正在考虑简单地使用 xml.parsers.expat (最快的)来遍历文件,一个一个地提取数据。
- 有没有更有效的方法? (简单的文本匹配不起作用)
- 是否需要为每个新文件(或字符串)发出一个新的 ParserCreate(),或者我可以为每个文件重复使用相同的 ParserCreate()?
- 有什么注意事项吗?
谢谢!
【问题讨论】:
-
你能提供更多关于这些文件的信息吗?他们是一样的吗?它们都包含所需的信息吗?为什么文本匹配没有用?一两个例子也会有所帮助。
-
您尝试了哪些其他解析器?出于非常相似的目的,我测试了
xml.dom.ext.reader,并且 libxml2 和 libxml2 的 Python 绑定要快得多。 -
@muhuk:文本匹配是无用的,因为 XML 特定的东西,例如搜索“foo”与文本匹配不会发现“foo”,即使它是相同的东西在 XML 中。
标签: python xml performance large-files expat-parser