TheMonkey said:XSLT would be good if it wasn't so fecking slow. No implementations deal with siblings in a non-painfully slow fashion.
AtW said:Saxon is way too heavy, .NET's seems to work okayish though many functions are not supported in it - looks like XSLT guys committed suicide by making long list of very useful things optional, which means of course its not implemented by almost anyone.

Cowboy Bob said:First you complain about lack of features, then you complain about a parser that has too many![]()
AtW said:I complain about stardard making them optional - this means not all vendors implemented them, for example Microsoft .NET features pretty much barebones implementation that nevertheless qualifies as XSLT.
AtW said:Too right monkey - whoever designed XSL should be beheaded, lets just recap some of the key points they don't tell you upfront:
1) you can't have variables (only constats)
2) you can't break out of loops
3) you can't return results from "procedures"
4) you can't convert tree chunk into node-set without calling implementor's specific function (usually node-set) (the twats!!!)
5) you are basically fked as the whole model is too static - you can't for example make up dynamicaly piece of template and execute it
6) you can't use variables in Xpath bits to specify variable Attribute or Element names - they (constants wrongly referred to as vars) for values
7) you will waste most of the time looking for fked in the head workarounds to things that can be trivially and quickly done if they (at least!) had proper variables!
Conclusion:
XSLT is S**T DESIGN!
Sadly no good alternative for something similarly flexibly with XML and safe from execution point of view (no access to filesystem etc). What a waste of opportunity this is.