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

2024-06-25 05:22:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在大小介于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)。如果感兴趣的查询项甚至不在文件中,那么整个树就会被丢弃,这也是一种可怕的浪费。在

有没有一种只查询特定标记的快速方法?或者是愚蠢的逐行文件搜索?如果块有错误的标记,我可以跳过整个块,我希望有一种方法可以利用这个事实。在


Tags: 文件数据方法字符串标记foobarxml