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

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


On Fri, Jan 23, 2009 at 11:19 AM, aha <aquil.abdullah at gmail.com> 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
>
> http://code.activestate.com/recipes/534109/
>
>
> 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: http://docs.python.org/library/xml.etree.elementtree.html

Cheers,
Chris

-- 
Follow the path of the Iguana...
http://rebertia.com



More information about the Python-list mailing list