A search for "python" and "xml" returns a variety of libraries for combining the two.
This list probably faulty:

xml.dom
xml.etree
xml.sax
xml.parsers.expat
PyXML
beautifulsoup?
HTMLParser
htmllib
sgmllib

Be nice if someone can offer a quick summary of when to use which, and why.
For many problems you can get by with the xml.  It has the major advantage of being part of the standard library.  This means that it is pre-installed on almost every system and that the interface will be static.  It is not the best, or the fastest, but it is there.
For everything else there is lxml.  Specically, lxml is best for parsing broken HTML, xHTML, or suspect feeds.  It uses libxml2 and libxslt to handle XPath, XSLT, and EXSLT.  The tutorial is clear and the interface is simplistically straight-forward.   The rest of the libraries mentioned exist because lxml was not available in its current form.
This is my opinion.
Which XML library for what purposes?