Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Abstracts out the implementation of elementtree behind the zope component architecture. And provides helper functions for testing XML output in tests.

Project Description


z3c.etree provides some mechanisms (a common interface) for integrating any ElementTree engine with the Zope component architecture. This allows applications to look up a engine against this interface. As such this package does not implement the ElementTree API.

z3c.etree also provides a set of utilities that can be used to make testing XML output in doctests easier. This functionality can also be called from a python based unit test via the assertXMLEqual method.


>>> import z3c.etree
>>> import z3c.etree.testing
>>> engine = z3c.etree.testing.etreeSetup()

Here are some examples for how to use z3c.etree with your own code.

To generate a Element object with the tag DAV:getcontenttype all we have to do is:

>>> etree = z3c.etree.getEngine()
>>> elem = etree.Element("{DAV:}getcontenttype")
>>> elem #doctest:+ELLIPSIS
<Element ...>
>>> z3c.etree.testing.assertXMLEqual(etree.tostring(elem), """
...    <getcontenttype xmlns="DAV:"/>""")

Now to add a value this element use just use the elem variable has the API suggests.

>>> elem.text = "text/plain"
>>> z3c.etree.testing.assertXMLEqual(etree.tostring(elem), """
...    <getcontenttype xmlns="DAV:">text/plain</getcontenttype>""")


>>> z3c.etree.testing.etreeTearDown()

Changes in z3c.etree


  • Bug: Fix Python 2.5 support.
  • Bug: Declared z3c as a namespace.
  • Implemented a way of comparing two XML fragments while ignoring the ordering of elements at the same level.
  • Allow the use of NORMALIZE_WHITESPACE with tag contents.


  • fix bug in getting access to the elementree engine


  • Start registering the elmenttree modules directly instead of using some proxy objects.

Release History

This version
History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(12.0 kB) Copy SHA256 Hash SHA256
Source None Feb 22, 2008

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers