]> granicus.if.org Git - python/commitdiff
Merged revisions 85546-85547 via svnmerge from
authorGeorg Brandl <georg@python.org>
Fri, 26 Nov 2010 07:35:31 +0000 (07:35 +0000)
committerGeorg Brandl <georg@python.org>
Fri, 26 Nov 2010 07:35:31 +0000 (07:35 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85546 | georg.brandl | 2010-10-15 19:58:45 +0200 (Fr, 15 Okt 2010) | 1 line

  #5762: fix handling of empty namespace in minidom, which would result in AttributeError on toxml().
........
  r85547 | georg.brandl | 2010-10-15 20:00:35 +0200 (Fr, 15 Okt 2010) | 1 line

  #6098: Refrain from claiming DOM level 3 conformance in minidom.
........

Lib/test/test_minidom.py
Lib/xml/dom/minidom.py
Misc/NEWS

index 90f7d51dd6289e981bbfaaec38ded24e7bd6a65e..efb924076709f590bfa8ac5f7ba6a3059072fb88 100644 (file)
@@ -1483,6 +1483,13 @@ class MinidomTest(unittest.TestCase):
         doc.appendChild(doc.createComment("foo--bar"))
         self.assertRaises(ValueError, doc.toxml)
 
+    def testEmptyXMLNSValue(self):
+        doc = parseString("<element xmlns=''>\n"
+                          "<foo/>\n</element>")
+        doc2 = parseString(doc.toxml())
+        self.confirm(doc2.namespaceURI == xml.dom.EMPTY_NAMESPACE)
+
+
 def test_main():
     run_unittest(MinidomTest)
 
index 12b7afce39ef35d09c7337eb1981f42b849a0bd8..693d1715dfc07322d8e94a66a56e528f5337e4c5 100644 (file)
@@ -291,9 +291,10 @@ def _in_document(node):
 
 def _write_data(writer, data):
     "Writes datachars to writer."
-    data = data.replace("&", "&amp;").replace("<", "&lt;")
-    data = data.replace("\"", "&quot;").replace(">", "&gt;")
-    writer.write(data)
+    if data:
+        data = data.replace("&", "&amp;").replace("<", "&lt;"). \
+                    replace("\"", "&quot;").replace(">", "&gt;")
+        writer.write(data)
 
 def _get_elements_by_tagName_helper(parent, name, rc):
     for node in parent.childNodes:
@@ -1340,11 +1341,9 @@ class Notation(Identified, Childless, Node):
 class DOMImplementation(DOMImplementationLS):
     _features = [("core", "1.0"),
                  ("core", "2.0"),
-                 ("core", "3.0"),
                  ("core", None),
                  ("xml", "1.0"),
                  ("xml", "2.0"),
-                 ("xml", "3.0"),
                  ("xml", None),
                  ("ls-load", "3.0"),
                  ("ls-load", None),
index 4a9ea8e82930f1e758f3945562281f201b54352c..226bd46a7931ace2f9c89d4d276ec4dbc5f3c79e 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -15,6 +15,11 @@ Library
 
 - Issue #10459: Update CJK character names to Unicode 5.2.
 
+- Issue #6098: Don't claim DOM level 3 conformance in minidom.
+
+- Issue #5762: Fix AttributeError raised by ``xml.dom.minidom`` when an empty
+  XML namespace attribute is encountered.
+
 - Issue #1710703: Write structures for an empty ZIP archive when a ZipFile is
   created in modes 'a' or 'w' and then closed without adding any files. Raise
   BadZipfile (rather than IOError) when opening small non-ZIP files.