I use Oxygen which has a nominal fee. I like this option because it comes with a development environment which allows me to step through the execution and set break points to jump to a particular line in the input or a particular template in the style sheet.
A free command line options is Saxon. (See: https://saxon.sourceforge.net https://saxonica.com))
Microsoft provides a command line tool. Remember to use the -xe switch.
Microsoft C# (and other languages) include XSLT processing. The express version of these languages can be downloaded for free.
Python also will process XSLT. A script can embed the transformation if desired. It relies on installing lxml (which is a Python add on module for processing XML files.)
You can learn using the online tutorial.