As XML becomes a standard way to exchange data on the Web, the need arises for mechanisms to query XML, sort, filter, and shape extracted data, and transform one XML grammar into another.
The XML Path Language (XPath) provides a simple and concise syntax for identifying nodes in an XML document, based on the node's type, name, content, and context in relation to other nodes in the tree.
XSL Transformations (XSLT) provides a grammar in which the results of XPath queries are associated with templates to describe the materialization of data in the XML source document as a new XML document. While this forms the basis for transforming data to display formats such as HTML, any XML grammar can be output, providing for sorting and filtering within a single XML grammar, or translating data from one schema to another.
The World Wide Web Consortium (W3C) is considering a more powerful query language for XML.
XSLT Developer's Guide | Using XPath Expressions to Select Nodes