- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个非常大的提要文件,它以 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/
我是一名优秀的程序员,十分优秀!