Skip to content
Pure javascript XML SAX parser for Node.js
Latest commit 23f8846 Mar 24, 2016 @hgourvest npm version 0.7
Failed to load latest commit information.
test fix double hyphen Mar 24, 2016
.gitignore BOM UTF8 Sep 14, 2015
LICENSE LICENSE Dec 11, 2012 Update master Jul 11, 2012
index.js fix double hyphen Mar 24, 2016
package.json npm version 0.7 Mar 24, 2016


  • This is a pure javascript XML SAX parser for Node.js.
  • The specificity of this xml parser is that it can parse a document from a Buffer.
  • It relies on iconv-lite to decode the text according to the code page of the document.


npm install node-xml-lite

Simple usage

Parse a file

xml = require("node-xml-lite");

xml.parseFile(filename, function(err, root){

Parse a file synchronously


Parse a string


Parse a buffer

xml.parseBuffer(new Buffer("<xml>hello</xml>"));

Advanced usage

parsing a file in SAX mode

  function(state, a, b) {
    switch (state) {
      case xml.xtOpen:
        // a is node name
      case xml.xtClose
      case xml.xtAttribute:
        // a is attribute name
        // b is attribute value
      case xml.xtText:
        // a is a text value
      case xml.xtCData:
        // a is a CDATA text value
      case xml.xtComment
        // a is a comment text value
    // tell the parser to continue
    return true;
    // parser done, check error

you can also use the sync function,

xml.SAXParseFileSync(filename, event)

providing your own data to SAX parser

var parser = new xml.XMLParser();
var ret = parser.parserBuffer(buffer, len, event);
if (ret === true) {
  // stopped by event result
} else
if (ret === false) {
  // there is a parsing error at:
  //   parser.line 
  //   parser.col
} else
if (ret === undefined) {
  // it is ok, continue ...

you can also parse a string

var ret = parser.parseString(str, event);
Something went wrong with that request. Please try again.