gpt4 book ai didi

python - 如何在没有 python 中的整个文件的情况下有效地检测 XML 模式

转载 作者:数据小太阳 更新时间:2023-10-29 02:55:44 24 4
gpt4 key购买 nike

我有一个非常大的提要文件,它以 XML 文档 (5GB) 的形式发送。在事先不知道其结构的情况下解析主项节点结构的最快方法是什么? Python 中是否有一种方法可以在不将完整的 xml 加载到内存中的情况下“即时”执行此操作?例如,如果我只保存文件的前 5MB(它本身将是无效的 xml,因为它没有结束标记)怎么办 - 是否有一种方法可以从中解析模式?


更新:我在这里包含了一个示例 XML 片段:https://hastebin.com/uyalicihow.xml .我希望提取类似于以下内容的数据框(或列表或您要使用的任何其他数据结构):

Items/Item/Main/Platform       Items/Item/Info/Name
iTunes Chuck Versus First Class
iTunes Chuck Versus Bo

这怎么可能?我在这里添加了赏金以鼓励回答。

最佳答案

这道题有好几个人理解错了,重新看了一遍,还真是一点都不清楚。其实有几个问题。

How to detect an XML schema

有些人将其解释为您认为文件中可能存在架构,或者从文件中引用了架构。我将其解释为您想要从实例的内容中推断出模式。

What would be the fastest way to parse the structure of the main item node without previously knowing its structure?

只需将其通过解析器,例如一个 SAX 解析器。解析器无需了解 XML 文件的结构即可将其拆分为元素和属性。但我不认为你真的想要尽可能快的解析(事实上,我认为性能在你的要求列表中根本没有那么高)。我认为您想对这些信息做一些有用的事情(您还没有告诉我们是什么):也就是说,您想要处理信息,而不仅仅是解析 XML。

Is there a python utility that can do so 'on-the-fly' without having the complete xml loaded in memory?

是的,根据这个页面,它提到了 Python 世界中的 3 个基于事件的 XML 解析器:https://wiki.python.org/moin/PythonXml (我不能保证其中任何一个)

what if I just saved the first 5MB of the file (by itself it would be invalid xml, as it wouldn't have ending tags) -- would there be a way to parse the schema from that?

我不确定您是否知道动词“解析”的实际含义。您的短语肯定表明您希望该文件包含您要提取的架构。但我完全不确定你真的是这个意思。在任何情况下,如果它确实包含前 5Mb 中的架构,您会发现它只是按顺序读取文件,不需要先“保存”文件的第一部分。

关于python - 如何在没有 python 中的整个文件的情况下有效地检测 XML 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53600089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com