xml_pp − xml pretty−printer


xml_pp [options] [<files>]


XML pretty printer using XML::Twig



edits the file(s) in place, if an extension is provided (no space between "−i" and the extension) then the original file is backed-up with that extension

The rules for the extension are the same as Perl’s (see perldoc perlrun): if the extension includes no "*" then it is appended to the original file name, If the extension does contain one or more "*" characters, then each "*" is replaced with the current filename.

−s <style>

the style to use for pretty printing: none, nsgmls, nice, indented, record, or record_c (see XML::Twig docs for the exact description of those styles), ’indented’ by default

−p <tag(s)>

preserves white spaces in tags. You can use several "−p" options or quote the tags if you need more than one

−e <encoding>

use XML::Twig output_encoding (based on Text::Iconv or Unicode::Map8 and Unicode::String) to set the output encoding. By default the original encoding is preserved.

If this option is used the XML declaration is updated (and created if there was none).

Make sure that the encoding is supported by the parser you use if you want to be able to process the pretty_printed file (XML::Parser does not support ’latin1’ for example, you have to use ’iso−8859−1’)


loads the documents in memory instead of outputing them as they are being parsed.

This prevents a bug (see BUGS ) but uses more memory

−f <file>

read the list of files to process from <file>, one per line


verbose (list the current file being processed)


stop argument processing (to process files that start with −)


display help


  xml_pp foo.xml > foo_pp.xml           # pretty print foo.xml
  xml_pp < foo.xml > foo_pp.xml         # pretty print from standard input
  xml_pp −v −i.bak *.xml                # pretty print .xml files, with backups
  xml_pp −v −i'orig_*' *.xml            # backups are named orig_<filename>
  xml_pp −i −p pre foo.xhtml            # preserve spaces in pre tags
  xml_pp −i.bak −p 'pre code' foo.xml   # preserve spaces in pre and code tags
  xml_pp −i.bak −p pre −p code foo.xml  # same
  xml_pp −i −s record mydb_export.xml   # pretty print using the record style
  xml_pp −e utf8 −i foo.xml             # output will be in utf8
  xml_pp −e iso−8859−1 −i foo.xml       # output will be in iso−8859−1
  xml_pp −v −i.bak −f lof               # pretty print in place files from lof
  xml_pp −− −i.xml                      # pretty print the −i.xml file
  xml_pp −l foo.xml                     # loads the entire file in memory
                                        # before pretty printing it
  xml_pp −h                             # display help


Elements with mixed content that start with an embedded element get an extra \n


will be output as


Using the "−l" option solves this bug (but uses more memory)


update XML::Twig to use Encode with perl 5.8.0


Michel Rodriguez <mirod@xmltwig.com>

More Linux Commands

pcilib(7) - a library for accessing PCI devices (Man Page)
The PCI library (also known as pcilib and libpci) is a portable library for accessing PCI devices and their configuration space. ACCESS METHODS The library supp

IO::AtomicFile(3pm) - write a file which is updated atomical
This module is intended for people who need to update files reliably in the face of unexpected program termination. For example, you generally dont want to be h

perlootut(1) ObjectOriented Programming in Perl Tutorial....
This document provides an introduction to object-oriented programming in Perl. It begins with a brief overview of the concepts behind object oriented design. Th

pr(1) - convert text files for printing - Linux manual page
Paginate or columnate FILE(s) for printing. Mandatory arguments to long options are mandatory for short options too. +FIRST_PAGE[:LAST_PAGE], --pages=FIRST_PAGE

glLightiv(3gl) - set light source parameters (Man Page).....
glLight sets the values of individual light source parameters. light names the light and is a symbolic name of the form GL_LIGHT$i$, where 0 &lt;= i &lt; GL_MAX_LIGHT

xfreerdp(1) FreeRDP X11 client (Commands - Linux man page)
xfreerdp is an X11 Remote Desktop Protocol (RDP) client which is part of the FreeRDP project. An RDP server is built-in to many editions of Windows. Alternative

pcre_copy_substring(3) - Perl-compatible regular expressions
This is a convenience function for extracting a captured substring into a given buffer. The arguments are: subject Subject that has been successfully matched ov

euidaccess(3) - check effective user's permissions for a fil
Like access(2), euidaccess() checks permissions and existence of the file identified by its argument pathname. However, whereas access(2), performs checks using

Linux Concepts, Commands and Examples
Linux Concepts, Commands and the Command Interpreter. Examples and explanations of key commands, concepts and information sources. Describes I/O, redirection, expansion, pipes, etc. Contains links to Linux manpages.

git-difftool(1) - Show changes using common diff tools......
git difftool is a Git command that allows you to compare and edit files between revisions using common diff tools. git difftool is a frontend to git diff and ac

vfs_acl_tdb(8) - Save NTFS-ACLs in a tdb file (Man Page)....
This VFS module is part of the samba(7) suite. The vfs_acl_tdb VFS module stores NTFS Access Control Lists (ACLs) in a tdb file. This enables the full mapping o

TAILQ_ENTRY(3) implementations of lists, tail queues, and ci
These macros define and operate on three types of data structures: lists, tail queues, and circular queues. All three structures support the following functiona

We can't live, work or learn in freedom unless the software we use is free.