diff options
Diffstat (limited to 'Lib/xml')
-rw-r--r-- | Lib/xml/dom/minidom.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/Lib/xml/dom/minidom.py b/Lib/xml/dom/minidom.py index 9db9ec1..18b0e27 100644 --- a/Lib/xml/dom/minidom.py +++ b/Lib/xml/dom/minidom.py @@ -32,6 +32,23 @@ del types import xml.dom _Node = xml.dom.Node + +if list is type([]): + class NodeList(list): + def item(self, index): + if 0 <= index < len(self): + return self[index] + + def __getattr__(self, name): + if name == "length": + return len(self) + raise AttributeError, name + +else: + def NodeList(): + return [] + + class Node(_Node): allnodes = {} _debug = 0 @@ -41,7 +58,7 @@ class Node(_Node): namespaceURI = None # this is non-null only for elements and attributes def __init__(self): - self.childNodes = [] + self.childNodes = NodeList() self.parentNode = self.ownerDocument = None if Node._debug: index = repr(id(self)) + repr(self.__class__) @@ -234,7 +251,7 @@ class Node(_Node): clone = new.instance(self.__class__, self.__dict__.copy()) if self._makeParentNodes: clone.parentNode = None - clone.childNodes = [] + clone.childNodes = NodeList() if deep: for child in self.childNodes: clone.appendChild(child.cloneNode(1)) |