I would say that every technology has its place, but there are certainly times when you can over-engineer a project for technologies sake beyond anything else. In a recent project we were pulling back stacks of XML data from a corporate system that needed to be parsed ready for output on huge printing presses. Due to the way the interface worked it was natural to use XSL for this transition and it suited our purposes wonderfully. However as part of the same project the data also needed to be presented to management via their intranet - again we could have gone down the XSL route and built complex CSS/XSL templates, but there has to come a point when you stop and think "what are the actual benefits of doing it this way?". Ultimately we would have had PHP pulling in the XML feed, parsing, manipulating and then creating a new XML structure from that, only to be handed to XSL for transformation into HTML. This would have been for this case a pointless exercise in over-engineering. There was simply no tangible benefit. In the end this section of the project relied on PHP and a templating system to create the HTML. The end result was less overhead on the servers, less complication for changes further down the road and the exact same end result.
It is perfectly simple to represent the data in your application as XML for the benifit of an XSL template, but at the end of the day, it is much eeasier to hold your data from PHP in PHP datastructures (arrays, objects etc), so a PHP template ends up being more natural.