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.
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.
You can learn using the online tutorial.