Javascript 解析Node.js中的大型XML文件
所以我有一个大于70mb的XML文件。我想在Node.js中解析这些数据,以便最终对其进行数据可视化。首先,我认为最好使用JSON而不是XML,因为Node.js更适合与JSON一起工作。因此,我计划使用xml2json节点模块将xml解析为JSON,但我似乎无法将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
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。但它有点初级,可能不适合您的需要。
但是,如果有人需要什么,我愿意改进:
可能存在的副本