Empty string namespace on XP in minidom

Gary garyfreder at gmail.com
Sat Jul 7 13:31:36 CEST 2007


Howdy

I ran into a difference between Python on Windows XP and Linux Fedora
6.

Writing a dom to xml with minidom works on Linux. It gives an error on
XP if there is an empty namespace. The problem was handled in CVS a
while ago.
  http://mail.python.org/pipermail/xml-sig/2003-October/009904.html

Here is an example on XP

Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from xml.dom.minidom import parseString
>>> doc = parseString('<root>value</root>')
>>> doc.toxml()
u'<?xml version="1.0" ?><root>value</root>'
>>> doc = parseString('<root xmlns="">value</root>')
>>> doc.toxml()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\tools\Python25\lib\xml\dom\minidom.py", line 45, in toxml
    return self.toprettyxml("", "", encoding)
  File "C:\tools\Python25\lib\xml\dom\minidom.py", line 57, in
toprettyxml
    self.writexml(writer, "", indent, newl, encoding)
  File "C:\tools\Python25\lib\xml\dom\minidom.py", line 1744, in
writexml
    node.writexml(writer, indent, addindent, newl)
  File "C:\tools\Python25\lib\xml\dom\minidom.py", line 809, in
writexml
    _write_data(writer, attrs[a_name].value)
  File "C:\tools\Python25\lib\xml\dom\minidom.py", line 299, in
_write_data
    data = data.replace("&", "&").replace("<", "<")
AttributeError: 'NoneType' object has no attribute 'replace'

and it's working on Linux

Python 2.4.4 (#1, Oct 23 2006, 13:58:00)
[GCC 4.1.1 20061011 (Red Hat 4.1.1-30)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from xml.dom.minidom import parseString
>>> doc = parseString('<root>value</root>')
>>> doc.toxml()
u'<?xml version="1.0" ?>\n<root>value</root>'
>>> doc = parseString('<root xmlns="">value</root>')
>>> doc.toxml()
u'<?xml version="1.0" ?>\n<root xmlns="">value</root>'


Should the library on XP be updated?

Gary




More information about the Python-list mailing list