The pxdom module

pxdom is a implementation of the W3C DOM standard for document manipulation.

Its main features are:

  • Complete support for the DOM Level 3 Core and LS Recommendations. Passes all applicable level1-level3 tests in the DOM Test Suite at the time of writing, modulo a few suite flaws (see W3 Bugzilla).
  • In-built parser for XML 1.0/1.1 (optionally with namespaces), non-validating but with full DTD parser and optional external entity/subset support.
  • Stand-alone pure-Python module, also embeddable in other packages. (No dependencies other than the standard string and URL library modules.)
  • Compatible with Python 1.5.2 and later; tested up to 2.7. (Requires Python 1.6 or later for proper Unicode support, and Python 2.3 or later for the optional character normalisation features.)

When to use pxdom

There are of course a number of other Python DOM implementations. You might want to consider using pxdom if your DOM application:

  • wants to use DOM Level 3 methods;
  • requires complete standards-compliance;
  • needs to work on a range of setups, regardless of Python version and what XML tools are installed.

You might want to consider not using pxdom if your DOM application:

  • must run as quickly as possible: pxdom is written for correctness, not efficiency;
  • wants to work together with other parts of Python’s XML frameworks, eg. SAX, pulldom.


Recommended version 1.6 [final]: Python module, browse documentation.

Licence: new-BSD style.

All versions

1.6 [final] 2010-12-31 module docs
1.5 [final] 2008-12-20 module docs
1.4 [final] 2006-07-19 module docs
1.3 [final] 2005-12-30 module docs
1.2 [beta] 2004-10-24 module docs
1.1 [beta] 2004-06-27 module docs
1.0 [final] 2004-02-13 module docs
0.9 [beta] 2003-12-09 module docs
0.8 [dogfood] 2003-10-18 module
0.7 [beta] 2003-09-17 module
0.6 [beta] 2003-07-23 module