For a large application I go for pagekit.org it is a MVCC framework and has support for both, XML/XSLT and a RDBMS. The output templates are generated with HTML::Template or for newer version with Template::Toolkit at your option. XML/XSLT is processed with XML::LibXML and XML::LibXSLT.
Personaly I use XML only to move static parts of my HTML output out of my templates.