node package manager
Don’t reinvent the wheel. Reuse code within your team. Create a free org »


Easy-peasy XML parsing built on sax-js.

sax is too much work for quick XML parsing, and xml2js only works if you never have tags with the same name!

sax-bastard is built on sax-js, but returns a hierarchy of objects, each one having these properties:

  • name (string): the tag name
  • text (string): any text content of the element that is not part of the XML hierarchy
  • attributes (object): the object's properties are the attribute names, the values are the attributes' values
  • children (array): an array containing all of the objects representing any child elements. BUT WAIT THERE'S MORE! The children array/object (HOW CAN IT BE BOTH AT THE SAME TIME JAVASCRIPT IS NUTS) also has a property for each unique tag name among its direct descendants. That property contains an array of all children with that tag.

See the example file for a very slightly more in-depth example!

var parse = require('sax-bastard')
var obj = parse(xml_string, function(err) {
	console.log("This is an error object, because an error happened apparently!")

If an error happens and no error callback is provided, the parse() function returns the error object instead of the thing you were hoping for.

This module written for ISoft Data Systems, licensed WTFPL.