transform – Transform XML

transform is a simple command-line script to apply XSLT [1] stylesheets to an XML source. If you need a command-line XSLT processor with more options have a look at xsltproc

Transform an XML file:

transform stylesheet.xsl file.xml

Transform an XML file and pretty print the result:

transform --xsl-output stylesheet.xsl file.xml | ppx


transform can be used with the following command-line options:

$ transform --help

usage: transform [-h] [-V] [-x | -o] [-f FILE] xslt_source xml_source

Transform XML source with XSLT.

positional arguments:
  xslt_source           XSLT source (file, http://...)
  xml_source            XML source (file, <stdin>, http://...)

optional arguments:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  -x, --xsl-output      honor xsl:output
  -o, --omit-declaration
                        omit the XML declaration
  -f FILE, --file FILE  save result to file

XSL output

-x, --xsl-output

You can honor the xsl:output element [2] with the --xsl-output option.

transform --xsl-output stylesheet.xsl file.xml

Save transformation result to file

-f FILE, --file FILE

Example stylesheet that converts an XML document to UTF-16 encoding:

<?xml version="1.0" encoding="UTF-8"?>
  version="1.0" id="utf16"

  <xsl:output method="xml" version="1.0" encoding="UTF-16" indent="yes" />

  <xsl:template match="/">
   <xsl:copy-of select="." />


Save the transformation result to a little-endian UTF-16 Unicode text file.

transform --xsl-output to_utf16.xsl utf8.xml --file utf16.xml

When saving to file use the --xsl-output option to preserve the character encoding of the transformation.

XML declaration

XML documents should begin with an XML declaration which specifies the version of XML being used [3].

-o, --omit-declaration

You can omit the XML declaration with the --omit-declaration option.

transform --omit-declaration stylesheet.xsl file.xml


[1]XSL Transformations (XSLT) 1.0
[2]XSL Transformations: 16 Output
[3]Extensible Markup Language §2.8 Prolog and Document Type Declaration