Lightweight XML parser for really big files
Switch branches/tags
Nothing to show
Latest commit 5089e1c Sep 14, 2016 @jahewson 1.0.0
Failed to load latest commit information.
lib handle errors Sep 14, 2016
.gitignore update gitignore Sep 14, 2016
LICENSE first commit Apr 2, 2012 handle errors Sep 14, 2016
package.json 1.0.0 Sep 14, 2016

big-xml -- Lightweight XML parser for really big files

A record-by-record XML reader, for node.js, based on node-expat.

Designed for big XML files (1GB+), and low memory usage.


npm install big-xml

or from source:

git clone git://
cd node-big-xml
npm link


XML files are streamed, and parsed one record at a time, which keeps memory usage low.

You must specify which XML elements should be considered as the root of a record, using a regex. In this example the elements Foo and Bar will be emitted as records.

var bigXml = require('big-xml');
var reader = bigXml.createReader('data.xml.gz', /^(Foo|Bar)$/, { gzip: true });

reader.on('record', function(record) {

The output would take the form:

{ tag: 'Foo',
  attrs: { Name: 'John', Status: 'Student' },
  children: [
    { tag: 'Color', text: 'blue'} 

And if you want to handle errors (by default they are thrown):

reader.on('error', function(err) {