我需要从多个流中收集已解析的XML数据。
我从路径中获取文件列表,并创建多个流来解析XML数据。我需要的数据是在JSONStream中聚合的。
在Node.js中有更好的方法吗?
let fs = require('fs');
let JSONStream = require('JSONStream');
let XmlStream = require('xml-stream');
async function getJsonStream(path) {
let fileNames = await getFileNames(path);
let jsonStream = JSONStream.stringify();
for(let i = 0; i < fileNames.length; i++) {
let fileStream = fs.createReadStream(fileNames[i]);
let xmlStream = new XmlStream(fileStream);
xmlStream.on('endElement: Item', function(el) {
jsonStream.write(el);
});
xmlStream.on('end', function() {
if (i === fileNames.length - 1) {
jsonStream.end();
}
});
}
return jsonStream;
}