summaryrefslogtreecommitdiffstats
path: root/Lib/xml/sax
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2000-10-03 22:35:29 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2000-10-03 22:35:29 (GMT)
commitcf0a1cc41705e27a8dd81536bb6a1b468bc22c59 (patch)
tree16f5c986e0f02a2361c4c7f0d18b995f4f7336da /Lib/xml/sax
parent1654b43ef79f81ce1ae6049f93db4a68f8408e3d (diff)
downloadcpython-cf0a1cc41705e27a8dd81536bb6a1b468bc22c59.zip
cpython-cf0a1cc41705e27a8dd81536bb6a1b468bc22c59.tar.gz
cpython-cf0a1cc41705e27a8dd81536bb6a1b468bc22c59.tar.bz2
Support non-namespace elements in *ElementNS of XMLGenerator.
Diffstat (limited to 'Lib/xml/sax')
-rw-r--r--Lib/xml/sax/saxutils.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/Lib/xml/sax/saxutils.py b/Lib/xml/sax/saxutils.py
index a25b41f..892f34d 100644
--- a/Lib/xml/sax/saxutils.py
+++ b/Lib/xml/sax/saxutils.py
@@ -62,7 +62,12 @@ class XMLGenerator(handler.ContentHandler):
self._out.write('</%s>' % name)
def startElementNS(self, name, qname, attrs):
- name = self._current_context[name[0]] + ":" + name[1]
+ if name[0] is None:
+ # if the name was not namespace-scoped, use the unqualified part
+ name = name[1]
+ else:
+ # else try to restore the original prefix from the namespace
+ name = self._current_context[name[0]] + ":" + name[1]
self._out.write('<' + name)
for pair in self._undeclared_ns_maps:
@@ -75,7 +80,10 @@ class XMLGenerator(handler.ContentHandler):
self._out.write('>')
def endElementNS(self, name, qname):
- name = self._current_context[name[0]] + ":" + name[1]
+ if name[0] is None:
+ name = name[1]
+ else:
+ name = self._current_context[name[0]] + ":" + name[1]
self._out.write('</%s>' % name)
def characters(self, content):