Which one of them do you use in your applications in order to transform XML data to other data types? WHY?
It depends what type of "transformation" you need, XQuery allows you to perform queries on your XML data, a bit like SQL.
XSLT allows you to apply a style on XML, like CSS does with HTML.
If you look at the Wikipedia Entry they have a section that compares the two.
In my view I see XSLT as a Programmable presentation layer for data.
While XQuery can be used for simple transformations, it lacks the power and sofistication of XSLT (especially templates and the <xsl:apply-templates>
instruction).
XSLT is a language that was especially designed to process tree structures. It is still best at doing this.
In cases when accessing an XML database it would be a good decision to use (the efficiency of) XQuery to extract the necessary XML nodes and then do the transformation with XSLT from here on. Some XSLT 2.x / XQuery processors do allow this (via extensions) even now. The next wave of XSLT 2.x/XQuery 1.x specifications will most probably make such interoperability an official feature of these languages.