120 lines
3.4 KiB
Python
120 lines
3.4 KiB
Python
"""W3C Document Object Model implementation for Python.
|
|
|
|
The Python mapping of the Document Object Model is documented in the
|
|
Python Library Reference in the section on the xml.dom package.
|
|
|
|
This package contains the following modules:
|
|
|
|
minidom -- A simple implementation of the Level 1 DOM with namespace
|
|
support added (based on the Level 2 specification) and other
|
|
minor Level 2 functionality.
|
|
|
|
pulldom -- DOM builder supporting on-demand tree-building for selected
|
|
subtrees of the document.
|
|
|
|
"""
|
|
|
|
|
|
class Node:
|
|
"""Class giving the NodeType constants."""
|
|
|
|
# DOM implementations may use this as a base class for their own
|
|
# Node implementations. If they don't, the constants defined here
|
|
# should still be used as the canonical definitions as they match
|
|
# the values given in the W3C recommendation. Client code can
|
|
# safely refer to these values in all tests of Node.nodeType
|
|
# values.
|
|
|
|
ELEMENT_NODE = 1
|
|
ATTRIBUTE_NODE = 2
|
|
TEXT_NODE = 3
|
|
CDATA_SECTION_NODE = 4
|
|
ENTITY_REFERENCE_NODE = 5
|
|
ENTITY_NODE = 6
|
|
PROCESSING_INSTRUCTION_NODE = 7
|
|
COMMENT_NODE = 8
|
|
DOCUMENT_NODE = 9
|
|
DOCUMENT_TYPE_NODE = 10
|
|
DOCUMENT_FRAGMENT_NODE = 11
|
|
NOTATION_NODE = 12
|
|
|
|
|
|
#ExceptionCode
|
|
INDEX_SIZE_ERR = 1
|
|
DOMSTRING_SIZE_ERR = 2
|
|
HIERARCHY_REQUEST_ERR = 3
|
|
WRONG_DOCUMENT_ERR = 4
|
|
INVALID_CHARACTER_ERR = 5
|
|
NO_DATA_ALLOWED_ERR = 6
|
|
NO_MODIFICATION_ALLOWED_ERR = 7
|
|
NOT_FOUND_ERR = 8
|
|
NOT_SUPPORTED_ERR = 9
|
|
INUSE_ATTRIBUTE_ERR = 10
|
|
INVALID_STATE_ERR = 11
|
|
SYNTAX_ERR = 12
|
|
INVALID_MODIFICATION_ERR = 13
|
|
NAMESPACE_ERR = 14
|
|
INVALID_ACCESS_ERR = 15
|
|
|
|
|
|
class DOMException(Exception):
|
|
"""Abstract base class for DOM exceptions.
|
|
Exceptions with specific codes are specializations of this class."""
|
|
|
|
def __init__(self, *args, **kw):
|
|
if self.__class__ is DOMException:
|
|
raise RuntimeError(
|
|
"DOMException should not be instantiated directly")
|
|
apply(Exception.__init__, (self,) + args, kw)
|
|
|
|
def _get_code(self):
|
|
return self.code
|
|
|
|
|
|
class IndexSizeErr(DOMException):
|
|
code = INDEX_SIZE_ERR
|
|
|
|
class DomstringSizeErr(DOMException):
|
|
code = DOMSTRING_SIZE_ERR
|
|
|
|
class HierarchyRequestErr(DOMException):
|
|
code = HIERARCHY_REQUEST_ERR
|
|
|
|
class WrongDocumentErr(DOMException):
|
|
code = WRONG_DOCUMENT_ERR
|
|
|
|
class InvalidCharacterErr(DOMException):
|
|
code = INVALID_CHARACTER_ERR
|
|
|
|
class NoDataAllowedErr(DOMException):
|
|
code = NO_DATA_ALLOWED_ERR
|
|
|
|
class NoModificationAllowedErr(DOMException):
|
|
code = NO_MODIFICATION_ALLOWED_ERR
|
|
|
|
class NotFoundErr(DOMException):
|
|
code = NOT_FOUND_ERR
|
|
|
|
class NotSupportedErr(DOMException):
|
|
code = NOT_SUPPORTED_ERR
|
|
|
|
class InuseAttributeErr(DOMException):
|
|
code = INUSE_ATTRIBUTE_ERR
|
|
|
|
class InvalidStateErr(DOMException):
|
|
code = INVALID_STATE_ERR
|
|
|
|
class SyntaxErr(DOMException):
|
|
code = SYNTAX_ERR
|
|
|
|
class InvalidModificationErr(DOMException):
|
|
code = INVALID_MODIFICATION_ERR
|
|
|
|
class NamespaceErr(DOMException):
|
|
code = NAMESPACE_ERR
|
|
|
|
class InvalidAccessErr(DOMException):
|
|
code = INVALID_ACCESS_ERR
|
|
|
|
from domreg import getDOMImplementation,registerDOMImplementation
|