正在分析Node.js中的大型XML文件

Parsing large XML file in Node.js

本文关键字:大型 XML 文件 js Node      更新时间:2023-09-26

所以我有一个大于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还很陌生,所以如果我的方法错误,请告诉我。提前感谢!

Json2xml需要将整个文件加载到内存中。您可以分配更多的内存,但我建议您直接从文件中解析XML。

NPM上还有其他库,如xml-stream,它允许您直接从文件中解析XML,而无需将其全部加载到内存中。

我个人对xml-stream的问题是它依赖于GYP,如果你是windows用户,这可能会很麻烦。我在NPM中添加了一个非常基本的解析器no-gyp-xml-stream,这个解析器只依赖于sax。但它有点初级,可能不适合你的需求
然而,如果有人需要什么,我愿意改进它:https://www.npmjs.com/package/no-gyp-xml-stream