XML document causes pickle to go into infinite recursion

Orest Kozyar orest.kozyar at gmail.com
Thu Nov 1 17:20:01 EDT 2007


> minidom creates a pretty complete tree data structure, with loads of backlinks
> to parent elements etc. That's where your circular references come from.
>
> I don't know why you want to use pickle here (and not serialised XML or the
> plain in-memory tree), but if memory consumption is an issue, try
> cElementTree, which comes with Python 2.5 (or as an external module for older
> versions). It's faster, more memory friendly and easier to use than minidom.
> There's also lxml.objectify, in case you can't live without pickeling.

I wasn't aware of cElementTree.  When I was looking for examples of
how to parse XML documents, most of the tutorials I came across used
minidom.  Thanks for pointing this out.  I've switched over, and I
like ElementTree much better than minidom (the structure returned by
the minidom parser always seemed overly complex).

I've also gotten rid of the pickling and am storing the XML files as
raw text in directories, so this got rid of my other problem with
shelve.




More information about the Python-list mailing list