I'm looking for tools or libraries to help play with rewrite rules to process XML files. FWIW, a number of these XML files are XMLized versions of Prolog / Lisp-ish query expressions of the form (:AND (MyClass1 ?instance) (MyField1 ?instance ?fieldvalue)), so my guess is I should be looking at query optimization toolkits from DB fields as well as languages.
This is primarily a learning experience for me, and I would like to try rewrite rules for a number of different purposes:
- Optimization (path expressions,
- Translation (convert 1 XML file to another)
- Pretty-printing (formatting, infix/prefix conversions, and other syntactic sugar)
- Pretty-reading (rewrite in more easily understandable, tho possibly less efficient, form)
The obvious thing to look at purely from a data type standpoint is XSLT, but it isn't really a full-fledged rule system. Still, I'm looking to try *using* such a system, not building one, so XSLT might win just from the standpoint of availability.
Any other suggestions?