When using a SAX parser, the parser will step through the XML, calling back to your 'start' and 'end' parsing methods for the start and end of each element in the XML input. In those methods, you check which element has been passed to you (usually by tag name) and take appropriate action. So although the parser is handling the XML in a generic way, your parsing methods are specific to the XML definition you're using. If the XML is structured hierarchically (nested elements & lists, etc.), you often need to keep track of the current state between callbacks, which takes some care.
The alternative DOM (Document Object Model) parser reads all the XML input in one go, and gives you random access to any element, which makes it easier to use, but it takes time and needs enough memory to read the whole XML document.