我在Node Js中读取一个大型XML文件(~1.5gb).我正在尝试对其进行流式处理并使用大量数据执行某些操作,但我发现很难理解文档.
我目前的简单代码是:
var fs = require('fs'); var stream = fs.createReadStream('xml/bigxmlfile.xml'); stream.on('data', function(chunk){ console.log(chunk) });
控制台提供了一堆buffer
十六进制(我认为)代码,如下所示:
我也尝试过:
var fs = require('fs'); var parseString = require('xml2js').parseString; var stream = fs.createReadStream('xml/lsnordstrom.xml'); stream.on('data', function(chunk){ //do something on file data parseString(chunk, function (err, result) { console.log(result); }); });
(所以我可以读取将XML流解析为JSON)但是我undefined
在控制台中得到了结果.
我如何实际将这些数据转换为有用的东西?
您可以像这样设置流编码:
var stream = fs.createReadStream('xml/lsnordstrom.xml'); stream.setEncoding('utf8');
或者将缓冲区转换为字符串:
stream.on('data', function(chunk) { chunk.toString('utf8'); });
此外,要解析像您尝试的XML,您需要一个流解析器.