13.7.3 minidom and the DOM standard
module is essentially a DOM 1.0-compatible DOM with some DOM 2 features (primarily namespace
Usage of the DOM interface in Python is straight-forward. The following mapping rules
- Interfaces are accessed through instance objects. Applications should not instantiate
the classes themselves; they should use the creator functions available on the Document object. Derived interfaces support all operations (and
attributes) from the base interfaces, plus any new operations.
- Operations are used as methods. Since the DOM uses only in
parameters, the arguments are passed in normal order (from left to right). There are no
optional arguments. void operations return
- IDL attributes map to instance attributes. For compatibility with the OMG IDL language
mapping for Python, an attribute
foo can also be accessed through accessor
methods _get_foo() and _set_foo(). readonly attributes must not be changed; this is not enforced at
- The types
unsigned long long,
boolean all map to Python integer objects.
- The type
DOMString maps to Python strings. xml.dom.minidom supports either byte or
Unicode strings, but will normally produce Unicode strings. Values of type
may also be
None where allowed to have the IDL
null value by the
DOM specification from the W3C.
- const declarations map to variables in their respective scope
xml.dom.minidom.Node.PROCESSING_INSTRUCTION_NODE); they must not be
DOMException is currently not supported in xml.dom.minidom. Instead, xml.dom.minidom uses standard Python
exceptions such as TypeError and AttributeError.
- NodeList objects are implemented using Python's built-in list
type. Starting with Python 2.2, these objects provide the interface defined in the DOM
specification, but with earlier versions of Python they do not support the official API.
They are, however, much more ``Pythonic'' than the interface defined in the W3C
The following interfaces have no implementation in xml.dom.minidom:
- DocumentType (added in Python 2.1)
- DOMImplementation (added in Python 2.1)
Most of these reflect information in the XML document that is not of general utility to
most DOM users.