Home

Awesome

xmlstream2

Pipeable XML parser

Cousin of jsonstream2 and inspired by xml-stream

install

npm install [--save/--save-dev] xmlstream2

example

<?xml version="1.0"?>
<myscript>
  <sql>
    <query error="fast" conn="conn1" stmt="stmt1">
      <success></success>
    </query>
    <fetch block="all" desc="on" stmt="stmt1">
      <row>
        <data desc="id">74</data>
        <data desc="name">sramos</data>
      </row>
      <success>+++ success stmt1</success>
    </fetch>
    <free>
      <success>+++ success </success>
    </free>
  </sql>
</myscript>
var XMLStream = require('xmlstream2');
var through = require('through2');
var writable = require('writable');
var fs = require('fs');


var rs = fs.createReadStream('./ex.xml');
rs.pipe(XMLStream('myscript.sql.fetch.row'))
.pipe(through.obj(function(row, enc, fn) {
  console.log(JSON.stringify(row, null, 2));
  fn();
}))
.pipe(writable({
  objectMode: true
}, function(chunk, enc, fn) {
  fn();
}));
{
  "_attributes": {},
  "_isSelfClosing": false,
  "_name": "row",
  "data": [
    {
      "_value": "74",
      "_attributes": {
        "desc": "id"
      },
      "_isSelfClosing": false,
      "_name": "data"
    },
    {
      "_value": "sramos",
      "_attributes": {
        "desc": "name"
      },
      "_isSelfClosing": false,
      "_name": "data"
    }
  ]
}

license

MIT