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).
$ npm install xml-formatter
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>
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 nodelineSeparator
(String, default=\r\n
) Specify the line separator to usewhiteSpaceAtEndOfSelfclosingTag
(Boolean, default=false) to either end ad self closing tag with<tag/>
or<tag />
The code is transpiled using Babel with @babel/preset-env default values and bundled using browserify.
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);
<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);
<root>
<content>
<p xml:space="preserve">This is <b>some</b> content.</p>
</content>
</root>
MIT