加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 08:05:18 所属栏目:百科 来源:网络整理
导读:NPM酷库,每天两分钟,了解一个流行NPM库。· 在NPM酷库051中,我们学习了如何使用xml2js库将XML格式文档字符串解析为JavaScript的对象数据,本期,我们继续学习sax,一个可以以流编程的方式解析XML。 使用流编程的方式,并没有直接将XML解析为JSON便捷,但

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

sax除了可以解析XML之外,也可以用来解析HTML文档。

参考资料

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读