aboutsummaryrefslogtreecommitdiff
path: root/node_modules/sax/examples/example.js
blob: 7b0246e9ab52cb9c4b0dd88881b483eb4e45f053 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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();
})();