Here is synopsis for 'xml tr' command:
XMLStarlet Toolkit: Transform XML document(s) using XSLT Usage: xml tr [<options>] <xsl-file> {-p|-s <name>=<value>} [ <xml-file-or-uri> ... ] where <xsl-file> - main XSLT stylesheet for transformation <xml-file> - input XML document file name (stdin is used if missing) <name>=<value> - name and value of the parameter passed to XSLT processor -p - parameter is XPATH expression ("'string'" to quote string) -s - parameter is a string literal <options> are: --omit-decl - omit xml declaration <?xml version="1.0"?> --show-ext - show list of extensions --val - allow validate against DTDs or schemas --net - allow fetch DTDs or entities over network --xinclude - do XInclude processing on document input --maxdepth val - increase the maximum depth --html - input document(s) is(are) in HTML format --catalogs - use SGML catalogs from $SGML_CATALOG_FILES otherwise XML catalogs starting from file:///etc/xml/catalog are activated by default XMLStarlet is a command line toolkit to query/edit/check/transform XML documents (for more information see http://xmlstar.sourceforge.net/) Current implementation uses libxslt from GNOME codebase as XSLT processor (see http://xmlsoft.org/ for more details)
EXAMPLE:
# Transform passing parameters to XSLT stylesheet xml tr xsl/param1.xsl -p Count='count(/xml/table/rec)' -s Text="Count=" xml/table.xml
Input xsl/params1.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:param name="Text"/> <xsl:param name="Count"/> <xsl:template match="/"> <xsl:call-template name="t1"/> </xsl:template> <xsl:template name="t1"> <xsl:for-each select="/xml"> <xsl:value-of select="$Text"/> <xsl:value-of select="$Count"/> <xsl:value-of select="' '"/> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Output
Count=3