在 Node.js 中解析大型 XML 文件
Posted
技术标签:
【中文标题】在 Node.js 中解析大型 XML 文件【英文标题】:Parsing large XML file in Node.js 【发布时间】:2015-09-15 05:38:52 【问题描述】:所以我有一个大于 70mb 的 XML 文件。我想在 Node.js 中解析这些数据,最终对其进行数据可视化。首先,我认为最好使用 JSON 而不是 XML,因为 Node.js 更适合与 JSON 一起使用。所以我计划使用 xml2json 节点模块将 xml 解析为 JSON,但我似乎无法将 xml 文件写入变量,因为它太大了。我试图用下面的代码做到这一点。
var fs = require('fs');
fs.readFile(__dirname + '/xml/ipg140114.xml', 'utf8', function(err, data, parseXml)
if(err)
return console.log(err);
);
我收到堆栈跟踪错误。 有什么更好的方法可以将此文件转换为 JSON,以便我可以使用 Node 解析它?我对 Node 很陌生,所以如果我的方法有误,请告诉我。提前致谢!
【问题讨论】:
Node.js Example to convert Xml to JSON for large Xml file的可能重复 【参考方案1】:Json2xml
要求您将整个文件加载到内存中。您可以分配更多内存,但我建议直接从文件中解析 XML。
NPM 上还有其他库,例如 xml-stream
,它们允许您直接从文件中解析 XML,而无需将其全部加载到内存中。
我对@987654324@ 的个人问题是它依赖于GYP
,如果您是Windows 用户,这可能会很麻烦。
我向 NPM 添加了一个非常基本的解析器 no-gyp-xml-stream
,这个解析器只依赖于 sax。但它有点简陋,可能不适合您的需求。
但是,如果有人需要任何东西,我愿意改进它:
https://www.npmjs.com/package/no-gyp-xml-stream
【讨论】:
以上是关于在 Node.js 中解析大型 XML 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JavaScript node.js 中将 xml 文件解析为数组