当前位置: 首页 > 后端技术 > Node.js

NPM酷库052:sax,按流程解析XML

时间:2023-04-04 01:24:51 Node.js

NPM酷库,每天两分钟了解一个流行的NPM库。·在NPM酷库051中,我们学习了如何使用xml2js库将XML格式文档字符串解析为JavaScript对象数据。本期我们继续学习sax这个可以流编程方式解析XML的工具。使用流式编程不如直接将XML解析成JSON方便,但可以节省内存开销。同时在一些应用领域只能使用流,比如远程XML事件流接口。saxsax的使用如下:constfs=require('fs');constsax=require('sax');fs.writeFileSync('file.xml','你好,世界!');letsaxStream=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、opencda??ta、cdata、closecdata、opennamespace、closenamespace等事件。除了解析XML,sax还可以用来解析HTML文档。参考https://github.com/isaacs/sax-js