I know of two ways to "pretty print", or format, xml:
what other free (as in beer) formatters are there? (aside from using javascript)
The xml format command has four options to control the output: -n or –noindent: do not indent the output. -t or –indent-tab: indent output with TABs. -s or –indent-spaces <num>: indent output with <num> spaces.
Then there are a couple keyboard shortcuts to beautify the XML: Pretty Print: Ctrl + Shift + Alt + B. Pretty Print (indent attributes): Ctrl + Shift + Alt + A.
Either open your file in the editor and press Ctrl+Alt+Shift+L or in the Project tool window, right-click the file and select Reformat Code.
Well, the identity transform you linked to is portable to any XSLT processor (Saxon, msxml, etc).
Additionally, you could look at xmllint
which is part of the LibXML2 toolkit. The --format
option allows you to pretty print the input. Similar functionality exists in XMLStarlet (which uses LibXML2 under the hood iirc).
xmlstarlet fo
is what I use for pretty printing. Xmlstarlet has a number of options:
$ xmlstarlet fo --help
XMLStarlet Toolkit: Format XML document
Usage: xml fo [<options>] <xml-file>
where <options> are
-n or --noindent - do not indent
-t or --indent-tab - indent output with tabulation
-s or --indent-spaces <num> - indent output with <num> spaces
-o or --omit-decl - omit xml declaration <?xml version="1.0"?>
-R or --recover - try to recover what is parsable
-D or --dropdtd - remove the DOCTYPE of the input docs
-C or --nocdata - replace cdata section with text nodes
-N or --nsclean - remove redundant namespace declarations
-e or --encode <encoding> - output in the given encoding (utf-8, unicode...)
-H or --html - input is HTML
A good XML engineer should be able to wield xmlstarlet.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With