【问题标题】:Best and quickest way to parse large XML [closed]解析大型 XML 的最佳和最快方法 [关闭]
【发布时间】:2015-05-31 18:21:24
【问题描述】:

我并不关心使用哪种编程语言,只要它在 Linux 中受支持。

重点是读取 XML 文件并将它们转换为 json 数组,并将键映射到 json 键。 我已经尝试过了。 PHP

  • 使用simplexml_load_file
  • 快速解析
  • 单线程
  • 内存管理不太好

Python

  • 使用 minidom.parse
  • 解析慢
  • 多处理池卡住了
  • 很棒的内存管理

NodeJs

  • usibg xml2js
  • 解析慢
  • 使用异步进行一点多处理
  • 内存管理不好

我能做些什么来让它更快。谢谢。

编辑: 多处理的重要性在于我有 50 个 XML 乘以 5 个目录

这个生产者应该每小时运行一次

【问题讨论】:

  • 你如何比较内存管理的质量?您对多处理有什么期望?这种转换其实是经典的顺序操作。
  • A.使用 ps aux 或 top 命令比较内存。 B. 多文件对话
  • 我明白了。因此,您要转换大约 250 个文件。它们是要转换一次还是多次转换?换句话说,这种转换的预期频率是多少?一次?每小时一次?每分钟一次?每秒一次?还有其他限制吗?
  • 每小时一次。平均值是 250 可以多一点或少一点。平均文件大小为20M

标签: json xml xml-parsing


【解决方案1】:

如果速度和内存是个问题,并且您不介意一点编码,那么使用 流解析器(例如 xml.saxxml.etree.ElementTree.iterparse)也许是合理的。

【讨论】:

    猜你喜欢
    • 2015-08-21
    • 1970-01-01
    • 2018-01-17
    • 2020-08-27
    • 2010-09-27
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多