Skip to content

simple non-compliant xml parser for nodejs

Notifications You must be signed in to change notification settings

KenjiBito/xml-parser

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xml-parser-xo

XML parser based on xml-parser with eXtra Options (XO).

Travis CI status

NPM

Installation

$ npm install xml-parser-xo

Example

JavaScript:

var fs = require('fs');
var parse = require('xml-parser-xo');
var xml = fs.readFileSync('examples/developerforce.xml', 'utf8');
var inspect = require('util').inspect;

var obj = parse(xml);
console.log(inspect(obj, { colors: true, depth: Infinity }));

XML:

<?xml version="1.0" encoding="utf-8"?>
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns="urn:enterprise.soap.sforce.com">
   <soapenv:Body>
      <createResponse>
         <result>
            <id>003D000000OY9omIAD</id>
            <success>true</success>
         </result>
         <result>
            <id>001D000000HTK3aIAH</id>
            <success>true</success>
         </result>
      </createResponse>
   </soapenv:Body>
 </soapenv:Envelope>

Yields:

{ declaration: { attributes: { version: '1.0', encoding: 'utf-8' } },
  root:
   { name: 'soapenv:Envelope',
     attributes:
      { 'xmlns:soapenv': 'http://schemas.xmlsoap.org/soap/envelope/',
        xmlns: 'urn:enterprise.soap.sforce.com' },
     children:
      [ { name: 'soapenv:Body',
          attributes: {},
          children:
           [ { name: 'createResponse',
               attributes: {},
               children:
                [ { name: 'result',
                    attributes: {},
                    children:
                     [ { name: 'id',
                         attributes: {},
                         children: [{name: '#text', content: '003D000000OY9omIAD'}]
                       { name: 'success', attributes: {}, children: [{name: '#text', content: 'true'}] } ],
                  },
                  { name: 'result',
                    attributes: {},
                    children:
                     [ { name: 'id',
                         attributes: {},
                         children: [{name: '#text', content: '001D000000HTK3aIAH'}]
                       { name: 'success', attributes: {}, children: [{name: '#text', content: 'true'}] } ],
                  } ],
                } ],
          } ],
     } }

Options

JavaScript:

var inspect = require('util').inspect;
var parse = require('xml-parser-xo');
var options = {trim: false, stripComments: false};

var obj = parse(xml, options);
console.log(inspect(obj, { colors: true, depth: Infinity }));
  • trim (Boolean, default=true) Set to true to trim the input before parsing it.
  • stripComments (Boolean, default=true) Set to true to strip the comments when parsing.

License

MIT

About

simple non-compliant xml parser for nodejs

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 98.7%
  • Makefile 1.3%