NPM酷库,天天两分钟,相识一个盛行NPM库。·
在NPM酷库051中,我们进修了怎样运用xml2js库将XML花样文档字符串剖析为JavaScript的对象数据,本期,我们继承进修sax,一个能够以流编程的体式格局剖析XML。
运用流编程的体式格局,并没有直接将XML剖析为JSON便利,然则能够节约内存开支,同时在某些应用领域只能运用流的体式格局,比方长途XML事宜流接口等状况。
sax
sax的运用体式格局以下:
const fs = require('fs');
const sax = require('sax');
fs.writeFileSync('file.xml','<xml>Hello, <who name="world">world</who>!</xml>');
let saxStream = sax.createStream();
saxStream.on('opentag', function (node) {
console.log('opentag',node);
});
fs.createReadStream('file.xml')
.pipe(saxStream)
.pipe(fs.createWriteStream('file-copy.xml'));
sax的流对象不只支撑data
等事宜以及pipe
管道,别的还供应了 opentag
、text
、doctype
、opentagstart
、closetag
、attribute
、comment
、opencdata
、cdata
、closecdata
、opennamespace
、closenamespace
等事宜。
sax除了能够剖析XML以外,也能够用来剖析HTML文档。