XQuery is program driven while XSLT is document-driven.
XQuery is declarative while XSLT is functional.
XSLT is written in XML while XQuery is not written in XML.
XQuery is used only for simple transformations while XSLT is a language that was especially designed to process tree structures.
XQuery is not as much powerful and sophisticated as XSLT which is still best to retrieve results in tree structure.
XQuery is good to access XML database and extract the necessary XML nodes while XSLT is used to transform XML documents.
XQuery is designed for retrieving and interpreting information according to the specification. It is very flexible to query a broad spectrum of XML information sources, like XML databases and XML documents while XSLT is mainly designed for transforming the XML documents.
XQuery is considered easier to learn while XSLT is comparatively difficult.
XQuery is shorter, faster and more elegant for huge data jobs while XSLT may be difficult to maintain unless you carefully designed your stylesheet.