XSLT is one of those cases where the idea and the intention is great, but the actual implementation is horrible.

I would love to see someone propose a modern alternative to XSLT, that works for the same use cases, but avoids XSLTs mistakes.

You might find Enlive (a Clojure library) interesting:

https://github.com/cgrand/enlive

See Brian Marick's 5-part tutorial for a good overview:

https://github.com/cgrand/enlive/wiki/Table-and-Layout-Tutor...