SGML makes my head hurt. I'm trying to do post-processing of SGML documents (well, the ESIS that nsgmls spits out) in perl and it seems there's a really big impedance mismatch. I've often wondered what a version of awk that had SGML (or XML events) would look like. Given that awk is (kind of) event driven anyway, it could work well. But I suspect that it would still come out a little bit difficult.
Stylesheets would probably do the trick better, but I have no idea where or how to start looking at DSSSL (which seems phenomenally complicated from what little I've seen of it). So, there's an even bigger impendance mismatch between me and stylesheets... Best stick to what I know for the moment, no matter how "Brute Force". I can always come back to it later.
Of course, my real problem is the fact that I'm trying to transform SGML from one DTD into XML from another DTD without really knowing enough about the individual DTDs. That'll teach me to try and rush these things.