const XmlTagStream = require('xml-tag-stream');
const stream = require('stream');
const readable = new stream.Readable;
readable
.pipe(new XmlTagStream('abc'))
.on('data', console.log.bind(console, '-'))
.on('end', console.log.bind(console, '-', 'streaming ended'))
readable.push(`
<root>
<abc>
123
</abc>
<abc x="123">
<def y="456">
ghi
</def>
</abc>
</root>
`);
readable.push(null);
The following output will get printed:
- <abc>
123
</abc>
- <abc x="123">
<def y="456">
ghi
</def>
</abc>
- streaming ended
const fs = require('fs');
const XmlTagStream = require('xml-tag-stream');
const through2 = require('through2');
const xmlParser = require('xml2js').Parser();
fs.createReadStream('./some.xml')
.pipe(new XmlTagStream('abc'))
.pipe(through2.obj((tag, enc, cb) => xmlParser.parseString(tag, cb)))
.on('data', console.log.bind(console, '-\n'))
.on('end', console.log.bind(console, '-\n', 'streaming ended'))