我有一个大的1.8gb XML文件,其所有内容都在一行上 该文件的主要结构是:
<xml>
<mutateieoverzicht>
<mutatiebericht> ... </mutatiebericht>
<mutatiebericht> ... </mutatiebericht>
...
</mutatieoverzicht>
</xml>
然后在一行:)
我想解析文件并对mutatiebericht
元素(存储在db中)执行一些操作。因为一次加载和解析整个文档占用了大量内存并且速度非常慢,所以我一直在考虑逐行解析文件。
但原始文件只有一行。
所以我的第一步是遍历文件,并在每行mutatiebericht
创建一个新文件。
我可以在node.js中加载文件并使用内容执行操作,但是对于使用内容拆分字符串会丢失。
答案 0 :(得分:0)
您可以使用xml-stream模块,它将XML文件读入流中,并在每个元素的开始和结束时发出事件。它看起来像这样(未经测试):
var stream = fs.createReadStream(pathtoyourfile);
var xml = new XmlStream(stream);
xml.on('endElement: mutatiebericht', function(item) {
console.log(item); //item contains your element
});