xml-formatter v3.6.3
xml-formatter
Converts XML into a human readable format (pretty print) while respecting the xml:space attribute.
Reciprocally, the xml-formatter package can minify pretty printed XML.
The xml-formatter package can also be used on the browser using the browserified version with a small footprint.
Installation
$ npm install xml-formatterExample
Usage:
import xmlFormat from 'xml-formatter';
xmlFormat('<root><content><p xml:space="preserve">This is <b>some</b> content.</content></p>');Output:
<root>
    <content>
        <p xml:space="preserve">This is <b>some</b> content.</p>
    </content>
</root>Options
filter: Function to filter out unwanted nodes by returningfalse.- type: 
function(node) => boolean - default: 
() => true 
- type: 
 ignoredPaths: List of XML element paths to ignore during formatting. This can be a partial path (element tag name) or full path starting from the document element e.g.['/html/head/script', 'pre'].- type: 
string[] - default: 
[] 
- type: 
 indentation: The value used for indentation.- type: 
string - default: 
' ' 
- type: 
 collapseContent: True to keep content in the same line as the element. Only works if element contains at least one text node.- type: 
boolean - default: 
false 
- type: 
 lineSeparator: Specify the line separator to use.- type: 
string - default: 
\r\n 
- type: 
 whiteSpaceAtEndOfSelfclosingTag: True to end self-closing tags with a space e.g.<tag />.- type: 
boolean - default: 
false 
- type: 
 throwOnFailure: Throw an error when XML fails to parse and get formatted otherwise the original XML is returned.- type: 
boolean - default: 
true 
- type: 
 forceSelfClosingEmptyTag: True to force empty tags to be self-closing.- type: 
boolean - default: 
false 
- type: 
 
Usage:
import xmlFormat from 'xml-formatter';
xmlFormat('<root><!-- content --><content><p>This is <b>some</b> content.</content></p>', {
    indentation: '  ', 
    filter: (node) => node.type !== 'Comment', 
    collapseContent: true, 
    lineSeparator: '\n'
});Output:
<root>
  <content>
    <p>This is <b>some</b> content.</p>
  </content>
</root>Minify mode
Usage:
import xmlFormat from 'xml-formatter';
const xml = `
<root>
  <content>
    <p>
        This is <b>some</b> content.
    </p>
  </content>
</root>`;
xmlFormat.minify(xml, {
    filter: (node) => node.type !== 'Comment',
    collapseContent: true
});Output:
<root><content><p>This is<b>some</b>content.</p></content></root>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:
const xmlFormatter = require('xml-formatter');
xmlFormat('<root><content><p xml:space="preserve">This is <b>some</b> content.</content></p>');Using global function xmlFormatter
Page:
<script type="text/javascript" src="dist/browser/xml-formatter-singleton.js"></script>Usage:
xmlFormatter('<root><content><p xml:space="preserve">This is <b>some</b> content.</content></p>');Output
<root>
    <content>
        <p xml:space="preserve">This is <b>some</b> content.</p>
    </content>
</root>License
MIT
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
9 years ago
9 years ago
9 years ago
9 years ago