summaryrefslogtreecommitdiffstats
path: root/Lib/xml/dom
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/xml/dom')
-rw-r--r--Lib/xml/dom/minidom.py20
1 files changed, 12 insertions, 8 deletions
diff --git a/Lib/xml/dom/minidom.py b/Lib/xml/dom/minidom.py
index 46eb881..2ec4325 100644
--- a/Lib/xml/dom/minidom.py
+++ b/Lib/xml/dom/minidom.py
@@ -16,7 +16,7 @@ Todo:
import xml.dom
-from xml.dom import EMPTY_NAMESPACE, EMPTY_PREFIX
+from xml.dom import EMPTY_NAMESPACE, EMPTY_PREFIX, XMLNS_NAMESPACE, domreg
from xml.dom.minicompat import *
from xml.dom.xmlbuilder import DOMImplementationLS, DocumentLS
@@ -384,10 +384,10 @@ class Attr(Node):
else:
d[name] = value
- def _set_prefix(self, value):
+ def _set_prefix(self, prefix):
nsuri = self.namespaceURI
- if value == "xmlns":
- if self.namespaceURI and self.namespaceURI != XMLNS_NAMESPACE:
+ if prefix == "xmlns":
+ if nsuri and nsuri != XMLNS_NAMESPACE:
raise xml.dom.NamespaceErr(
"illegal use of 'xmlns' prefix for the wrong namespace")
d = self.__dict__
@@ -395,7 +395,7 @@ class Attr(Node):
if prefix is None:
newName = self.localName
else:
- newName = "%s:%s" % (value, self.localName)
+ newName = "%s:%s" % (prefix, self.localName)
if self.ownerElement:
_clear_id_cache(self.ownerElement)
d['nodeName'] = d['name'] = newName
@@ -536,6 +536,7 @@ class NamedNodeMap(NewStyle, GetattrMagic):
except KeyError:
node = Attr(attname)
node.ownerDocument = self._ownerElement.ownerDocument
+ self.setNamedItem(node)
node.value = value
else:
if not isinstance(value, Attr):
@@ -1008,7 +1009,8 @@ defproperty(CharacterData, "length", doc="Length of the string data.")
class Text(CharacterData):
# Make sure we don't add an instance __dict__ if we don't already
# have one, at least when that's possible:
- __slots__ = ()
+ # XXX this does not work, CharacterData is an old-style class
+ # __slots__ = ()
nodeType = Node.TEXT_NODE
nodeName = "#text"
@@ -1132,7 +1134,8 @@ class Comment(Childless, CharacterData):
class CDATASection(Text):
# Make sure we don't add an instance __dict__ if we don't already
# have one, at least when that's possible:
- __slots__ = ()
+ # XXX this does not work, Text is an old-style class
+ # __slots__ = ()
nodeType = Node.CDATA_SECTION_NODE
nodeName = "#cdata-section"
@@ -1212,7 +1215,8 @@ defproperty(ReadOnlySequentialNamedNodeMap, "length",
class Identified:
"""Mix-in class that supports the publicId and systemId attributes."""
- __slots__ = 'publicId', 'systemId'
+ # XXX this does not work, this is an old-style class
+ # __slots__ = 'publicId', 'systemId'
def _identified_mixin_init(self, publicId, systemId):
self.publicId = publicId