8.7.3 minidom and the DOM standard
The xml.dom.minidom module is essentially a DOM 1.0-compatible DOM with some DOM 2 features (primarily namespace features).
Usage of the DOM interface in Python is straight-forward. The following mapping rules apply:
- 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
None
. - 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 runtime. - The types
short int
,unsigned int
,unsigned long long
, andboolean
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 typeDOMString
may also beNone
where allowed to have the IDLnull
value by the DOM specification from the W3C. - const declarations map to variables in their
respective scope
(e.g.
xml.dom.minidom.Node.PROCESSING_INSTRUCTION_NODE
); they must not be changed. 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 recommendations.
The following interfaces have no implementation in xml.dom.minidom:
- DOMTimeStamp
- DocumentType (added in Python 2.1)
- DOMImplementation (added in Python 2.1)
- CharacterData
- CDATASection
- Notation
- Entity
- EntityReference
- DocumentFragment
Most of these reflect information in the XML document that is not of general utility to most DOM users.
See About this document... for information on suggesting changes.