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

README.md

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.

Install

npm install big-xml

or from source:

git clone git://github.com/jahewson/node-big-xml.git
cd node-big-xml
npm link

#Example

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) {
  console.log(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) {
  console.log(err);
});