Via Elliotte Rusty Harold, I came across XStream:
XStream is a simple functional transformation language for XML documents. XML transformations written in XStream are evaluated in streaming: when possible, parts of the output are computed and produced while the input document is still being parsed. Some transformations can thus be applied to huge XML documents which would not even fit in memory.
Very nice; I’ll need to try this out next time I have a bunch of XML files to transform and XSLT seems to heavy.