What does an XML parser does? It reads an XML files and calls you back sequentially when it encounters openning tags, closing tags, content, processing instructions, etc. The XML document must be well formed. You usually use a stack to keep track of what you are receiving, you could also use the stack to build a DOM view of the parsed document.

There are validating and non-validating parsers. A validating parser adds the functionallity of reading a DTD and deciding if the XML document is valid.

If you use C, you have expat or Gnome's libxml2. If you use Java you can use Xerces.