http://www.perlmonks.org?node_id=142081


in reply to XSLT vs Templating?

In addition to XPATH for TT2, I've found the XML::Simple plugin very easy to work with.

I don't think XSLT gurantees correct XHTML anymore than TT2 does, so your decision should probably be based on ease of use and performance.

Replies are listed 'Best First'.
Re: Re: XSLT vs Templating?
by Matts (Deacon) on Jan 28, 2002 at 21:34 UTC
    XSLT guarantees XML, though not necessarily XHTML. TT2 doesn't guarantee anything other than "text". It also has a HTML output method, which can help with buggy browsers (read: Netscape 4), and offers some guarantees.
      I thought you could use XSLT to produce various output formats from WAP to PDF to TeX. Is that not correct?
        Kinda...

        WAP, well really WML (WAP is the protocol, like HTTP), is an XML format, so that's easy (note though that the WAP forum have dropped WML in favour of XHTML for future devices).

        PDF is not possible to generate directly, because XML has no concept of certain binary characters that PDFs would need. However you can do something called XSL-FO (FO stands for formatting objects), which allows you to generate PDFs or Postscript. The way this would work in a pipelined system is you'd first transform your XML into some sort of enhanced view, then one pipeline might transform that to HTML via XSLT, then another might transform that to XSL-FO, and then on to PDF via some sort of XSL-FO engine. Note that XSLT engines are very different beasts to XSL-FO engines. AxKit can do XSL-FO PDF generation via PassiveTeX.

        TeX is a little tricky, because there are some special characters that are hard to output via XSLT, and XSLT doesn't have very good text manipulation facilities (the designers expected you to do the text manipulation before you do the transformation I guess).

        In summary, XSLT has three output modes: XML, HTML, and Text. You're free to do whatever you want to within the limitations of those output modes, and within the limitations of XSLT.