Parsing XML: SAX, DOM, Expat, or Something Else?

Chris Rebert clp2 at
Fri Jan 23 20:25:30 CET 2009

On Fri, Jan 23, 2009 at 11:19 AM, aha <aquil.abdullah at> wrote:
> Hello All,
>  I've been charged with developing an XML configuration file format,
> for one of the applications that my company develops. (Yes, I know it
> would have been easier to just use the configuration file format as
> described in RFC 822)   While I am finally comfortable with the XML
> description that we've agreed upon; I am still trying to determine the
> best XML parser API to use.  I would love to use XPATH, however I face
> the following restriction:
> The Python scripts that perform the parsing of the XML configuration
> file must be compatible with Python Versions 2.2-present.
> This means that any functionality that I use needs to be compatible
> with Python 2.2.
> I started with the DOM API in xml.dom.minidom and I thought that it
> might be the best way to go, but then I ran across the Recipes of Wai
> Yip Tung
> and John Bair, Christoph Dietze from the second edition of the Python
> cookbook.
> Wai's implementation uses thes SAX parser and John and Christoph's
> implementation uses Expat API.
> In the end what I really want is to transform the XML
> <config>
>   <component>
>     <setting></setting>
>   </component>
> </config>
> into an object that looks like
> config.component.setting or a map config[component][setting].
> Another restriction is that I don't want to have to ship additional
> modules.
> Does anyone have any advice, comments, or HELP???

ElementTree is in the std lib for Python 2.5+ and has a fairly
Pythonic API compared to SAX/DOM.
Docs for it:


Follow the path of the Iguana...

More information about the Python-list mailing list