JSPM

  • Created
  • Published
  • Downloads 564959
  • Score
    100M100P100Q181351F
  • License MIT

Converts a XML string into a human readable format (pretty print) while respecting the xml:space attribute

Package Exports

  • xml-formatter
  • xml-formatter/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (xml-formatter) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

xml-formatter

Converts XML into a human readable format (pretty print) while respecting the xml:space attribute.

This module can also be used on the browser using the browserified version with a small footprint (8KB file size).

Build Status npm version

Installation

$ npm install xml-formatter

Example

JavaScript:

var format = require('xml-formatter');
var xml = '<root><content><p xml:space="preserve">This is <b>some</b> content.</content></p>';

var formattedXml = format(xml);
console.log(formattedXml);

Output:

<root>
    <content>
        <p xml:space="preserve">This is <b>some</b> content.</p>
    </content>
</root>

Options

JavaScript:

var format = require('xml-formatter');
var xml = '<root><!-- content --><content><p>This is <b>some</b> content.</content></p>';

var formattedXml = format(xml, {
    indentation: '  ', 
    filter: (node) => node.type !== 'Comment', 
    collapseContent: true, 
    lineSeparator: '\n'
});

console.log(formattedXml);

Output:

<root>
  <content>
    <p>This is <b>some</b> content.</p>
  </content>
</root>
  • filter (function(node)) Function to filter out unwanted nodes by returning false.
  • indentation (String, default=' ') The value used for indentation.
  • collapseContent (Boolean, default=false] True to keep content in the same line as the element. Only works if element contains at least one text node
  • lineSeparator (String, default=\r\n) Specify the line separator to use
  • whiteSpaceAtEndOfSelfclosingTag (Boolean, default=false) to either end ad self closing tag with <tag/> or <tag />

On The Browser

The code is transpiled using Babel with @babel/preset-env default values and bundled using browserify.

Using require('xml-formatter')

Page:

<script type="text/javascript" src="dist/browser/xml-formatter.js"></script>

Usage:

var xmlFormatter = require('xml-formatter');
var xml = '<root><content><p xml:space="preserve">This is <b>some</b> content.</content></p>';

var formattedXml = xmlFormatter(xml);
console.log(formattedXml);

Using global function xmlFormatter

<script type="text/javascript" src="dist/browser/xml-formatter-singleton.js"></script>

Usage:

var xml = '<root><content><p xml:space="preserve">This is <b>some</b> content.</content></p>';

var formattedXml = xmlFormatter(xml);
console.log(formattedXml);

Output

<root>
    <content>
        <p xml:space="preserve">This is <b>some</b> content.</p>
    </content>
</root>

License

MIT