"provides a wrapper for XML::LibXSLT,
XML::Sablotron (works with 0.43 - I haven't been using it recently), and XT
(as an external call to Java). It can accept a list of processors in an order
specified by the calling script, otherwise it defaults to trying libxslt,
then Sablotron, then XT, falling through from one to the next on failure. It
also tries to work out, for libxslt and sablotron, whether it's been given a
string or a filename. I intend to add filehandles to that, so one will
eventually be able to pass the XML and XSL as file, filehandle, or string
without having to tell the processor which."