EASYSAX - pure javascript sax-style parser for xml
Простой и быстрый SAX парсер XML. Парсер не потоковый, и не расчитан на гиганские файлы. Весь XML должен быть в памяти. Встроен механизм работы с пространсвами имен.
Парсер был написан для RSS ридера http://zzreader.com На конец 2017 года остается самым быстрым SAX парсером XML под NODE.JS
Install
$ npm install easysax
Benchmark
https://github.com/vflash/sax-benchmark
sh: node bench-01.js
count - 100000
size - 25
saxjs : 346.182ms
libxml: 852.098ms
expat : 705.867ms
expat buffer: 712.212ms
ltx: 137.998ms
easysax ns=on uq=on attr=on : 100.050ms
easysax ns=off uq=on attr=on : 82.520ms
easysax ns=off uq=off attr=on : 69.133ms
easysax ns=off uq=off attr=off: 29.226ms
sh: node bench-02.js
count - 1000
size - 22750
saxjs : 1484.910ms
libxml: 1058.808ms
expat : 1028.151ms
expat buffer: 853.925ms
ltx: 359.173ms
easysax ns=on uq=on attr=on : 151.511ms
easysax ns=off uq=on attr=on : 114.646ms
easysax ns=off uq=off attr=on : 88.604ms
easysax ns=off uq=off attr=off: 80.773ms
sh: node bench-03.js
count - 1000
size - 121786
saxjs : 10765.309ms
libxml: 5387.832ms
expat : 6734.018ms
expat buffer: 5865.209ms
ltx: 2953.910ms
easysax ns=on uq=on attr=on : 1769.676ms
easysax ns=off uq=on attr=on : 1475.585ms
easysax ns=off uq=off attr=on : 1214.665ms
easysax ns=off uq=off attr=off: 405.799ms
Пример использования
var parser = ; // если требуется пространство именparser; parser; parser; parser; parser; parser; parser; //parser.on('question', function() {}); // <? ... ?>//parser.on('attention', function() {}); // <!XXXXX zzzz="eeee"> parser; // xml -- (String) строка xml