example.js 791 Bytes

var fs = require("fs"),
  util = require("util"),
  path = require("path"),
  xml = fs.readFileSync(path.join(__dirname, "test.xml"), "utf8"),
  sax = require("../lib/sax"),
  strict = sax.parser(true),
  loose = sax.parser(false, {trim:true}),
  inspector = function (ev) { return function (data) {
    console.error("%s %s %j", this.line+":"+this.column, ev, data);
  }};

sax.EVENTS.forEach(function (ev) {
  loose["on"+ev] = inspector(ev);
});
loose.onend = function () {
  console.error("end");
  console.error(loose);
};

// do this in random bits at a time to verify that it works.
(function () {
  if (xml) {
    var c = Math.ceil(Math.random() * 1000)
    loose.write(xml.substr(0,c));
    xml = xml.substr(c);
    process.nextTick(arguments.callee);
  } else loose.close();
})();