2025-11-05 17:04:23 -03:00

44 lines
831 B
JavaScript

'use strict';
var events = require('events');
var sax = require('sax');
class SaxSaxjs extends events.EventEmitter {
constructor() {
super();
this.parser = sax.parser(true);
this.parser.onopentag = (a) => {
this.emit("startElement", a.name, a.attributes);
};
this.parser.onclosetag = (name) => {
this.emit("endElement", name);
};
this.parser.ontext = (str) => {
this.emit("text", str);
};
this.parser.onend = () => {
this.emit("end");
};
this.parser.onerror = (e) => {
this.emit("error", e);
};
}
write(data) {
if (typeof data !== "string") {
data = data.toString();
}
this.parser.write(data);
}
end(data) {
if (data) {
this.parser.write(data);
}
this.parser.close();
}
}
module.exports = SaxSaxjs;