[Pkg-javascript-commits] [ltx] 207/469: sax_easysax

Jonas Smedegaard dr at jones.dk
Wed Aug 31 13:03:04 UTC 2016


This is an automated email from the git hooks/post-receive script.

js pushed a commit to branch master
in repository ltx.

commit f33f41b689444128b23ca7e9145a76cf13bc385f
Author: Astro <astro at spaceboyz.net>
Date:   Fri Mar 16 14:53:12 2012 +0100

    sax_easysax
---
 lib/parse.js       |  4 ++--
 lib/sax_easysax.js | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/lib/parse.js b/lib/parse.js
index 60dcdd2..49f919e 100644
--- a/lib/parse.js
+++ b/lib/parse.js
@@ -3,12 +3,12 @@ var util = require('util');
 
 exports.availableSaxParsers = [];
 exports.bestSaxParser = null;
-['./sax_expat', './sax_saxjs'].forEach(function(modName) {
+['./sax_expat.js', './sax_easysax.js', './sax_saxjs.js'].forEach(function(modName) {
     var mod;
     try {
 	mod = require(modName);
     } catch (e) {
-	console.error(e);
+	console.error(e.stack || e);
     }
     if (mod) {
 	exports.availableSaxParsers.push(mod);
diff --git a/lib/sax_easysax.js b/lib/sax_easysax.js
new file mode 100644
index 0000000..d2aeec3
--- /dev/null
+++ b/lib/sax_easysax.js
@@ -0,0 +1,35 @@
+var util = require('util');
+var events = require('events');
+var Easysax = require('easysax');
+
+var SaxEasysax = module.exports = function SaxEasysax() {
+    events.EventEmitter.call(this);
+    this.parser = new Easysax();
+    var that = this;
+    this.parser.on('startNode', function(name, attr, uq, str, tagend) {
+        that.emit('startElement', name, attr());
+    });
+    this.parser.on('endNode', function(name, uq, str, tagstart) {
+        that.emit('endElement', name);
+    });
+    this.parser.on('textNode', function(str, uq) {
+        that.emit('text', uq(str));
+    });
+    this.parser.on('cdata', function(str) {
+        that.emit('text', str);
+    });
+    this.parser.on('error', function(e) {
+	that.emit('error', e);
+    });
+    // TODO: other events, esp. entityDecl (billion laughs!)
+};
+util.inherits(SaxEasysax, events.EventEmitter);
+
+SaxEasysax.prototype.write = function(data) {
+    this.parser.parse(data);
+};
+
+SaxEasysax.prototype.end = function(data) {
+    if (data)
+	this.parser.parse(data);
+};

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/ltx.git



More information about the Pkg-javascript-commits mailing list