【问题标题】:Nodejs returns "out of memory" when converting a large XML to JSON using module "xml2json"使用模块“xml2json”将大型 XML 转换为 JSON 时,Nodejs 返回“内存不足”
【发布时间】:2018-05-11 21:29:46
【问题描述】:

我有一个 1.7GB 的 XML 文件,我想将它转换为 JSON 文件。当我使用“xml2json”模块解析它时,它会返回

错误:您的 xml 文件中有错误:内存不足

我的代码是:

const fs = require("fs");
const parser = require("xml2json");

const xmlObject = fs.readFileSync("./database1.xml")
const tempObject = JSON.parse(parser.toJson(xmlObject));

这是错误:

throw new Error('There are errors in your xml file: ' + parser.getError());
    ^

Error: There are errors in your xml file: out of memory

我已经在运行代码的时候添加了参数“--max-old-space-size=4096”但是不起作用。

有什么解决办法吗?或者有人可以提供另一种将大型 XML 转换为 JSON 文件的方法吗? 谢谢。

【问题讨论】:

  • 为此,您应该使用 node-expat,因为它使用流式传输会减少内存使用量。

标签: json node.js xml xml-parsing


【解决方案1】:

这个标志“--max-old-space-size=4096”是正确的。
只需尝试添加更多:

--max-old-space-size=8192

【讨论】:

  • 您好,感谢您的回复。我试过了,但得到了同样的错误。
  • 尝试删除一些正在复制的对象。 const tempObject = parser.toJson(xmlObject);
  • 我又试了一次,还是一样。我正在阅读源文件。我发现这个模块使用另一个名为“node-expat”的模块来解析 xml 文件,错误来自“node-expat”中一个名为“getError()”的函数。我想这是这个模块的问题,但我不知道如何修复它。但再次感谢您的帮助。
猜你喜欢
  • 2018-06-04
  • 2019-02-16
  • 2015-06-18
  • 1970-01-01
  • 2012-12-09
  • 2010-12-18
相关资源
最近更新 更多