I haven't tried it yet, but I came across this alternate syntax for XSLT which is much more friendly:
https://github.com/Juniper/libslax/wiki/Intro