LT NSL (http://www.ltg.ed.ac.uk/software/nsl/) does exactly that, but
doesn't validate except the first step in the pipe. If you don't care
about validation, but do want speed, I recommend LT XML (new release
just out: http://www.ltg.ed.ac.uk/software/xml/) which is written in
C, runs on WIN32 and UN*X platforms, comes with a number of pre-built
tools (including two for downtranslation) which might well handle a
lot of your needs -- if not it also includes a powerful API supporting
both stream and event views of your documents.
Of course the truely correct approach is to use XSL+XSLJ+Jade or
DSSSL+Jade, avoiding the procedural (slow) Perl step altogether.
ht
-- Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk URL: http://www.ltg.ed.ac.uk/~ht/