使用node.js拆分大型XML文件

时间:2014-10-15 07:43:34

标签: xml node.js

我有一个大的1.8gb XML文件,其所有内容都在一行上 该文件的主要结构是:

<xml>
    <mutateieoverzicht>
        <mutatiebericht> ... </mutatiebericht>
        <mutatiebericht> ... </mutatiebericht>
        ...
    </mutatieoverzicht>
</xml>

然后在一行:)

我想解析文件并对mutatiebericht元素(存储在db中)执行一些操作。因为一次加载和解析整个文档占用了大量内存并且速度非常慢,所以我一直在考虑逐行解析文件。 但原始文件只有一行。

所以我的第一步是遍历文件,并在每行mutatiebericht创建一个新文件。

我可以在node.js中加载文件并使用内容执行操作,但是对于使用内容拆分字符串会丢失。

1 个答案:

答案 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
});