Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解析Node.js中的大型XML文件_Javascript_Json_Xml_Node.js - Fatal编程技术网

Javascript 解析Node.js中的大型XML文件

Javascript 解析Node.js中的大型XML文件,javascript,json,xml,node.js,Javascript,Json,Xml,Node.js,所以我有一个大于70mb的XML文件。我想在Node.js中解析这些数据,以便最终对其进行数据可视化。首先,我认为最好使用JSON而不是XML,因为Node.js更适合与JSON一起工作。因此,我计划使用xml2json节点模块将xml解析为JSON,但我似乎无法将xml文件写入变量,因为它太大了。我试图用下面的代码来实现这一点 var fs = require('fs'); fs.readFile(__dirname + '/xml/ipg140114.xml', 'utf8', func

所以我有一个大于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流的问题是它依赖于
GYP
,如果您是windows用户,这可能会很麻烦。 我在NPM中添加了一个非常基本的解析器,名为
no-gyp-xml-stream
,这个解析器只依赖于sax。但它有点初级,可能不适合您的需要。
但是,如果有人需要什么,我愿意改进:

可能存在的副本