]> granicus.if.org Git - python/commitdiff
Merged revisions 86348 via svnmerge from
authorSenthil Kumaran <orsenthil@gmail.com>
Tue, 9 Nov 2010 02:49:26 +0000 (02:49 +0000)
committerSenthil Kumaran <orsenthil@gmail.com>
Tue, 9 Nov 2010 02:49:26 +0000 (02:49 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r86348 | senthil.kumaran | 2010-11-09 10:36:59 +0800 (Tue, 09 Nov 2010) | 3 lines

  Fix Issue10205 - XML QName error when different tags have same QName.
........

Lib/test/test_xml_etree.py
Lib/xml/etree/ElementTree.py

index 90afdfdae6ab8af03931773ff7d10dd7823398d1..3f4455a8c9904cd774297512e93aaa9e31c4eb03 100644 (file)
@@ -1101,6 +1101,11 @@ def qname():
     >>> elem = ET.Element(ET.QName("uri", "tag"))
     >>> serialize(elem) # 1.3
     '<ns0:tag xmlns:ns0="uri" />'
+    >>> elem = ET.Element(ET.QName("uri", "tag"))
+    >>> subelem = ET.SubElement(elem, ET.QName("uri", "tag1"))
+    >>> subelem = ET.SubElement(elem, ET.QName("uri", "tag2"))
+    >>> serialize(elem) # 1.4
+    '<ns0:tag xmlns:ns0="uri"><ns0:tag1 /><ns0:tag2 /></ns0:tag>'
 
     2) decorated attributes
 
index 181a461d77f0174c025d623132b0cb673150d70d..d89fd3be0c32612d17389fb3a70ff2adbfa67492 100644 (file)
@@ -871,8 +871,9 @@ def _namespaces(elem, encoding, default_namespace=None):
         iterate = elem.getiterator # cET compatibility
     for elem in iterate():
         tag = elem.tag
-        if isinstance(tag, QName) and tag.text not in qnames:
-            add_qname(tag.text)
+        if isinstance(tag, QName):
+            if tag.text not in qnames:
+                add_qname(tag.text)
         elif isinstance(tag, basestring):
             if tag not in qnames:
                 add_qname(tag)