[ python-Bugs-847665 ] XMLGenerator.startElementNS dies on
EMPTY_NAMESPACE attribut
SourceForge.net
noreply at sourceforge.net
Sun Nov 23 10:21:36 EST 2003
Bugs item #847665, was opened at 2003-11-24 02:21
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=847665&group_id=5470
Category: XML
Group: Python 2.3
Status: Open
Resolution: None
Priority: 5
Submitted By: Stuart Bishop (zenzen)
Assigned to: Nobody/Anonymous (nobody)
Summary: XMLGenerator.startElementNS dies on EMPTY_NAMESPACE attribut
Initial Comment:
from xml.sax.saxutils import XMLGenerator
g = XMLGenerator(encoding='utf8')
STREAM_NAMESPACE = 'http://etherx.jabber.org/streams'
CLIENT_NAMESPACE = 'jabber:client'
g.startDocument()
g.startPrefixMapping('stream', STREAM_NAMESPACE)
g.startPrefixMapping('client', CLIENT_NAMESPACE)
g.startElementNS(
(STREAM_NAMESPACE, 'stream'), 'stream',
{(None,'xmlns'): CLIENT_NAMESPACE}
)
Dies with:
Traceback (most recent call last):
File "tst.py", line 11, in ?
g.startElementNS(
File "/System/Library/Frameworks/Python.framework/
Versions/2.3/lib/python2.3/xml/sax/saxutils.py", line 124, in
startElementNS
name = self._current_context[name[0]] + ":" + name[1]
KeyError: 'x'
Changing the end of XMLGenerator.startElementNS to the
following makes it work the way I expect:
for (name, value) in attrs.items():
if name[0] is None:
name = name[1]
else:
name = self._current_context[name[0]] + ":" +
name[1]
self._out.write(' %s=%s' % (name,
quoteattr(value)))
self._out.write('>')
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=847665&group_id=5470
More information about the Python-bugs-list
mailing list