[Python-checkins] r86349 - in python/branches/release27-maint: Lib/test/test_xml_etree.py Lib/xml/etree/ElementTree.py

senthil.kumaran python-checkins at python.org
Tue Nov 9 03:49:26 CET 2010


Author: senthil.kumaran
Date: Tue Nov  9 03:49:26 2010
New Revision: 86349

Log:
Merged revisions 86348 via svnmerge from 
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.
........


Modified:
   python/branches/release27-maint/   (props changed)
   python/branches/release27-maint/Lib/test/test_xml_etree.py
   python/branches/release27-maint/Lib/xml/etree/ElementTree.py

Modified: python/branches/release27-maint/Lib/test/test_xml_etree.py
==============================================================================
--- python/branches/release27-maint/Lib/test/test_xml_etree.py	(original)
+++ python/branches/release27-maint/Lib/test/test_xml_etree.py	Tue Nov  9 03:49:26 2010
@@ -1101,6 +1101,11 @@
     >>> 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
 

Modified: python/branches/release27-maint/Lib/xml/etree/ElementTree.py
==============================================================================
--- python/branches/release27-maint/Lib/xml/etree/ElementTree.py	(original)
+++ python/branches/release27-maint/Lib/xml/etree/ElementTree.py	Tue Nov  9 03:49:26 2010
@@ -871,8 +871,9 @@
         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)


More information about the Python-checkins mailing list