summaryrefslogtreecommitdiffstats
path: root/Lib/xml/dom/pulldom.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/xml/dom/pulldom.py')
-rw-r--r--Lib/xml/dom/pulldom.py22
1 files changed, 12 insertions, 10 deletions
diff --git a/Lib/xml/dom/pulldom.py b/Lib/xml/dom/pulldom.py
index 9f93d6a..f1e5126 100644
--- a/Lib/xml/dom/pulldom.py
+++ b/Lib/xml/dom/pulldom.py
@@ -27,26 +27,28 @@ class PullDOM(xml.sax.ContentHandler):
del self._ns_contexts[-1]
def startElementNS(self, name, tagName , attrs):
- if name[0]:
+ uri,localname = name
+ if uri:
# When using namespaces, the reader may or may not
# provide us with the original name. If not, create
# *a* valid tagName from the current context.
if tagName is None:
- tagName = self._current_context[name[0]] + ":" + name[1]
- node = self.document.createElementNS(name[0], tagName)
+ tagName = self._current_context[uri] + ":" + localname
+ node = self.document.createElementNS(uri, tagName)
else:
# When the tagname is not prefixed, it just appears as
- # name[1]
- node = self.document.createElement(name[1])
+ # localname
+ node = self.document.createElement(localname)
for aname,value in attrs.items():
- if aname[0]:
- qname = self._current_context[name[0]] + ":" + aname[1]
- attr = self.document.createAttributeNS(name[0], qname)
+ a_uri, a_localname = aname
+ if a_uri:
+ qname = self._current_context[a_uri] + ":" + a_localname
+ attr = self.document.createAttributeNS(a_uri, qname)
else:
- attr = self.document.createAttribute(name[0], name[1])
+ attr = self.document.createAttribute(a_localname)
attr.value = value
- node.setAttributeNode(qname, attr)
+ node.setAttributeNode(attr)
parent = self.curNode
node.parentNode = parent