xml2js-clean

clean xml2js output based on some user defined heuristics

Usage no npm install needed!

<script type="module">
  import xml2jsClean from 'https://cdn.skypack.dev/xml2js-clean';
</script>

README

The package xml2js converts xml to json. In general, the problem is not easy since there are some ambiguities to be addressed. For this reason, xml2js produces a not very clean output.

This package tries to apply some heuristics to clean xml2js output.

Heuristics should be based on some known assumptions on the underlying xml schema.

Users can define their own heuristics, too.

Example

cleanXml(xml, {
  operations: [ // plug in the heuristics to apply
    simplifyArrayValues,
    transformEnglishSingularNamesToArray,
    parseNumericValues,
  ]
});

Input

sample: {
  title: 'fee',
  number: '2.4',
  integer: '399',
  items: {
    item: [ 'foe', 'foo' ]
  },
  entities: {
    entity: [
      { hello: 'world' },
      { hello: 'mum' },
    ]
  }
}

Output

sample: {
  title: 'fee',
  number: 2.4,
  integer: 399,
  items: [ 'foe', 'foo' ],
  entities: [
    { hello: 'world' },
    { hello: 'mum' },
  ]
}

Credits

The idea is discussed in this answer on Stackoverflow and is implemented in this package by Tristian Flanagan. This package is a rewriting of his code to make it more reusable and flexible.