<p>是的,它叫做XPath:</p>
<pre><code>from cStringIO import StringIO
import xml.etree.ElementTree
from xml.etree import ElementTree as ET
doc = StringIO("""
<document>
<title>People working for me</title>
<person xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<name>Jim</name>
<title>Porch Light Switcher</title>
<foaf:homepage rdf:resource="http://example.com/his_page" />
</person><person>
<name>Joe</name>
<title>Bottle Washer, 3rd class</title>
<nick xmlns="http://xmlns.com/foaf/0.1/">Joe-Joe</nick>
</person>
</document>
""")
tree = ET.parse(doc)
print tree.findall("person/title")
</code></pre>
<p>当然,<a href="http://lxml.de/xpathxslt.html#xpath" rel="nofollow">lxml</a>要好得多:</p>
<pre><code>f = StringIO('<foo><bar></bar></foo>')
tree = etree.parse(f)
r = tree.xpath('/foo/bar')
</code></pre>
<ul>
<li><a href="http://effbot.org/zone/element-xpath.htm" rel="nofollow">XPath Support in ElementTree</a></li>
<li><a href="https://docs.python.org/2/library/xml.etree.elementtree.html#elementtree-xpath" rel="nofollow">XPath support</a></li>
<li><a href="http://www.w3.org/TR/xpath/" rel="nofollow">XML Path Language (XPath)</a></li>
</ul>