Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python实时查询大型XML文件的最快方法_Python_Xml_Bigdata - Fatal编程技术网

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

用python实时查询大型XML文件的最快方法,python,xml,bigdata,Python,Xml,Bigdata,我需要在大小介于10-200MB之间的XML文件中搜索一个特定字符串,该字符串始终位于XML文件的同一级别,位于同一标记下面 如果我找到这个特定的字符串,那么我需要从树中收集其他数据。不幸的是,感兴趣的值被深深地嵌套在数据中。并非每个文件都包含此标记。有时标记将包含查询值,有时则不包含 <foo> <fun2> <bla>Same level useless value with different tag</bla>

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


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

寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现该问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。