xml-converter

A module for converting between XML format and JavaScript objects.

Usage no npm install needed!

<script type="module">
  import xmlConverter from 'https://cdn.skypack.dev/xml-converter';
</script>

README

xml-converter

A module for converting between XML format and JavaScript objects.

Documentation in Russian

Requirements

  • Node.js version >=16.

Installation

npm i xml-converter

Examples of using

Parsing XML to JavaScript object.

const { parseXML } = require( 'xml-converter' );

const xml = `<root>
<child>
    <tag>string value</tag>
    <tag>78</tag>
</child>
</root>`;

const object = parseXML( xml );
Result
//object
{
  root: [
    {
      value: '',
      attrs: {},
      self: false,
      child: [
        {
          value: '',
          attrs: {},
          self: false,
          tag: [
            {
              value: 'string value',
              attrs: {},
              self: false,
            },
            {
              value: '78',
              attrs: {},
              self: false,
            }
          ]
        }
      ]
    }
  ],
}

Parsing JavaScript object to XML.

const { parseObject } = require( 'xml-converter' );

const object = {
    root: [
      {
        value: '',
        attrs: {},
        self: false,
        child: [
          {
            value: '',
            attrs: {},
            self: false,
            tag: [
              {
                value: 'string value',
                attrs: {},
                self: false,
              },
              {
                value: '78',
                attrs: {},
                self: false,
              }
            ]
          }
        ]
      }
    ],
  }

const xml = parseObject( object, 2 );
Result
//xml
`<root>
<child>
  <tag>string value</tag>
  <tag>78</tag>
</child>
</root>`

Arguments

parseXML( xml )

Argument Type Description
xml string Valid xml string.

parseObject( object, indentSize )

Argument Type Description
object object Valid object described in the next section.
indentSize number Indent size for xml string.

Fields and type of the object returned from the parseXML().

Field Type Description
value string Value of the XML tag.
attrs object Object with tag's attributes { attributeName: 'attributeValue' }.
self boolean Flag indicating whether the tag is self-closing.
[tag] array Array with child-tags with same tag name.
Example
//object
{
  root: [ // root tag name
    { // object, root tag
      value: '', // root tag value
      attrs: {}, // root tag attributes
      self: false,
      child: [ // child tag name
        { // object, child tag
          value: '', // child tag value...
          attrs: {},
          self: false,
          tag: [
            {
              value: 'string value',
              attrs: {},
              self: false,
            },
            {
              value: '78',
              attrs: {},
              self: false,
            }
          ]
        }
      ]
    }
  ],
}