et_xmlfile is a low memory library for creating large XML files.

It is based upon the xmlfile module from lxml with the aim of allowing code to be developed that will work with both libraries. It was developed initially for the openpyxl project but is now a standalone module.

The code was written by Elias Rabel as part of the Python Düsseldorf openpyxl sprint in September 2014.

Note on performance

The code was not developed with performance in mind but turned out to be faster than the existing SAX-based implementation but is significantly slower than lxml's xmlfile. There is one area where an optimisation for lxml will negatively affect the performance of et_xmfile and that is when using the .element() method on an xmlfile context manager. It is, therefore, recommended not to use this, though the method is provided for code compatibility.