在python中实时查询大型XML文件的最快方法

时间:2016-02-23 13:19:11

标签: python xml bigdata

我需要搜索大小介于10到200MB之间的XML文件,以查找始终与XML文件位于同一级别的特定字符串,在同一标记下方。

如果我找到这个特定的字符串,那么我需要从树中收集其他数据。不幸的是,感兴趣的价值深深嵌入数据中。并非每个文件都包含此标记。有时标签会包含查询值,有时则不会。

<foo>
    <fun2>
        <bla>Same level useless value with different tag</bla>
    </fun2>
    <fun>

        <bar>
            <maybeofinterest>Not of interest</maybeofinterest>
            <maybeofinterest>Check the whole tree</maybeofinterest>
        </bar>
    </fun>
<foo>

我目前正在使用一个简单的ElementTree对象来保存我的XML树,而在较大的文件上它很慢(考虑到lxml)。当感兴趣的查询项目甚至不在文件中时,它也是一种可怕的浪费,然后整个树被抛出。

是否有快速查询特定标签的方法?还是一行一行地搜索笨笨的方式?如果块有错误的标签我可以跳过整个块,我希望有办法利用这个事实。

0 个答案:

没有答案