Scroll to navigation

XMLPRETTY(1p) User Contributed Perl Documentation XMLPRETTY(1p)

NAME

xmlpretty - XML pretty printer

SYNOPSIS

  xmlpretty [--options] [filename]

DESCRIPTION

xmlpretty is the commandline interface to XML::Handler::YAWriter, acting as a tool to add and remove pretty printing to XML files.

xmlpretty has several methods to add human readablitiy.

If you want to add readablity without adding so-called ignorable whitespace, use it in the following way :

  $ xmlpretty --AddHiddenNewline \
              --AddHiddenAttrTab \
          --CatchEmptyElement \
          uglyfile.xml > prettyfile.xml

If you do not want to process the file further, but only want it human readable, add visible whitespace to the file as follows :

  $ xmlpretty --PrettyWhiteNewline \
              --PrettyWhiteIndent \
          --CatchEmptyElement \
          uglyfile.xml > prettyfile.xml

You may use YAWriter to clean whitespace from XML documents. This may work in 99% of the cases where you want to get rid of ignorable whitespace caused by the various forms of pretty printing.

  $ xmlpretty --NoWhiteSpace \
              --NoComments \
              --AddHiddenNewline \
          --AddHiddenAttrTab \
          --CatchEmptyElement \
          prettyfile.xml > cleanfile.xml

Options

Options are given in a gnu like --option idiom.

Add hidden newline before ">"
Add hidden tabulation for attributes
Catch empty Elements, apply "/>" compression
Catch whitespace with comments
This option will cause start_document, processing_instruction and doctype_decl to appear as SGML. The SGML is still well-formed of course, if your SAX events are well-formed.
Supress Comments
Supress DTD
Supress Processing Instructions
Supress <?xml ... ?> Prolog
Supress WhiteSpace to clean documents from prior pretty printing.
Add visible indent before any eventstring
Add visible newlines before any eventstring
Output only SAX1 compilant eventstrings

Bugs:

Automatic recoding between 8bit and 16bit does not yet work correctly !

I have Perl-5.6 at home and here I can specify "use utf8;" in the right places to make recoding work. But I dislike saying "use 5.00555;" because many systems run 5.00503.

AUTHOR

Michael Koehne, Kraehe@Copyleft.De

Thanks

"Derksen, Eduard (Enno), CSCIO" <enno@att.com> helped me with the Escape hash and gave quite a lot of useful comments.

SEE ALSO

perl and XML::Parser::PerlSAX

2018-05-06 perl v5.26.2