There are already a lot of XSLT processors out there, such as MSXSL, but without downloading and installing an application you can create your own processor using a couple of PowerShell lines and the System.Xml.Xsl namespace of .Net:![]()
param ($xml, $xsl, $output)
if (-not $xml -or -not $xsl -or -not $output)
{
Write-Host "& .\xslt.ps1 [-xml] xml-input [-xsl] xsl-input [-output] transform-output"
exit;
}
trap [Exception]
{
Write-Host $_.Exception;
}
$xslt = New-Object System.Xml.Xsl.XslCompiledTransform;
$xslt.Load($xsl);
$xslt.Transform($xml, $output);
Write-Host "generated" $output;
What does this code do:
- Declare command-line parameters $xml, $xsl, $output
- Check parameters are passed to the script
- Set a trap to display detailed error message in case an exception is raised
- Load the XSLT file
- Transform XML and write result to output file

FYI, this little bit of code is in cmdlet form in the PowerShell Community Extensions (Convert-Xml): http://pscx.codeplex.com. Along with the handy Format-Xml (and Format-Hex – think od, er octal dump).
[...] By the way, the PowerShell version of this code snippet is here. [...]
[...] xslt command is a translation of the PowerShell xslt script I posted some time [...]