There are two standardized approaches to handle XML files. The one builds the document structure in memory and let's the programmer access it with several methods and properties. It's the XML DOM (Document Object Model). The programmer can grab nodes of the tree by saying; give me the parent-node of this node, or give me the next sibling, or go through all child-elements. Another language to handle the XML is called SAX, the Simple API (Application Programming Interface) for XML; it's event-oriented and doesn't build up the complete document in memory, so it uses less memory, but is also not so powerful.
In DOM, you can query certain parts of the XML by using XPath. With that language you can express things like: give me all nodes that are called "x", and who have a child node called "y" with the attribute "z" set to a certain value.
XPath is a part of the XSL (Extensible Style Language). So called XSL Transformations (XSLT, which are written in XML) convert XML applications into other XML, or into binary or plain text output.