<p>您可以这样访问属性值:</p>
<pre><code>from elementtree.ElementTree import XML, SubElement, Element, tostring
text = """
<root>
<phoneNumbers>
<number topic="sys/phoneNumber/1" update="none" />
<number topic="sys/phoneNumber/2" update="none" />
<number topic="sys/phoneNumber/3" update="none" />
</phoneNumbers>
<gfenSMSnumbers>
<number topic="sys2/SMSnumber/1" update="none" />
<number topic="sys2/SMSnumber/2" update="none" />
</gfenSMSnumbers>
</root>
"""
elem = XML(text)
for node in elem.find('phoneNumbers'):
print node.attrib['topic']
# Create sub elements
if node.attrib['topic']=="sys/phoneNumber/1":
tag = SubElement(node,'TagName')
tag.attrib['attr'] = 'AttribValue'
print tostring(elem)
</code></pre>
<p>忘了说,如果ElementTree版本大于1.3,可以使用XPath:</p>
<pre><code>elem.find('.//number[@topic="sys/phoneNumber/1"]')
</code></pre>
<p><a href="http://effbot.org/zone/element-xpath.htm" rel="noreferrer">http://effbot.org/zone/element-xpath.htm</a></p>
<p>或者你可以用这个简单的:</p>
<pre><code>for node in elem.findall('.//number'):
if node.attrib['topic']=="sys/phoneNumber/1":
tag = SubElement(node,'TagName')
tag.attrib['attr'] = 'AttribValue'
</code></pre>