NPM酷庫052:sax,按流解析XML

NPM酷庫,天天兩分鐘,瞭解一個流行NPM庫。·node

在NPM酷庫051中,咱們學習瞭如何使用xml2js庫將XML格式文檔字符串解析爲JavaScript的對象數據,本期,咱們繼續學習sax,一個能夠以流編程的方式解析XML。git

使用流編程的方式,並無直接將XML解析爲JSON便捷,可是能夠節省內存開銷,同時在某些應用領域只能使用流的方式,好比遠程XML事件流接口等狀況。github

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 管道,另外還提供了 opentagtextdoctypeopentagstartclosetagattributecommentopencdatacdataclosecdataopennamespaceclosenamespace等事件。學習

sax除了能夠解析XML以外,也能夠用來解析HTML文檔。ui

參考資料

https://github.com/isaacs/sax-jsspa

相關文章
相關標籤/搜索