fwiw, we're working on doing this in plone land, utilizing the non standard, fast, incremental, validating XmlReader interface from libxml and pluggable namespace handlers. the xmlreader iface is very SAX like.

http://svn.plone.org/view/archetypes/Marshall/branches/k_vertigo-pluggable-ns/

-k


On Wed, 07 Dec 2005 06:33:46 -0800, Jean-Marc Orliaguet <[EMAIL PROTECTED]> wrote:

Martijn Faassen wrote:

Andreas Jung wrote:

I'm about to write an xml importer for importing simple data (properties, dictionaries). Exporting is easy, importing is trickier because a parser
is required.

Is there any prefered framework for doing such things in zope3 (zope2)?


Sax or DOM...it depends on the usecase and the algorithmic approach you take. Sax is fast but you have to build your own datastructures, DOM is slow, takes a lot of memory but it gives you a tree to perform any fancy operation on it..


DOM is also not particularly Pythonic (neither is SAX, but it is relatively simple at least). You could also look into ElementTree (or lxml, which implements that API too). ElementTree (though not yet lxml) also introduces iterparse, which is a kind of streaming version of the ElementTree API.

ElementTree's API is a much nicer way to work with XML from Python than DOM. Also it's more lightweight than even MiniDOM.

Regards,

Martijn


thanks for the info Martijn, I'm going to look at it.

I've done some work with ElementTree for CPSIO, and I haven't found it very easy to use because of all the extra namespace URI, and xpath stuff used for the tree navigation (xpath_findall, ..) which seem to get in the way. Also it could be that I find the DOM approach easier since I'm used to it in javascript already.

the question is also about being able to reuse parts of the export/import code of CMFSetup / GenericSetup and possibly simplify the zope2 -> zope3 migration of existing applications.

best
/JM
_______________________________________________
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com

Reply via email to