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

This commit is contained in:
Senthil Kumaran 2010-11-09 02:36:59 +00:00
parent 92665ab8c7
commit ec30b3dd8c
2 changed files with 8 additions and 2 deletions

View File

@ -1119,6 +1119,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

View File

@ -913,8 +913,9 @@ def _namespaces(elem, 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, str):
if tag not in qnames:
add_qname(tag)