>>> code = '''<program new-version="1.1.1.1" name="ProgramName">
... <download-url value="http://website.com/file.exe"/>
... </program>'''
С lxml :
>>> import lxml.etree
>>> lxml.etree.fromstring(code).xpath('//download-url/@value')[0]
'http://website.com/file.exe'
Со встроенным xml.etree.ElementTree :
>>> import xml.etree.ElementTree
>>> doc = xml.etree.ElementTree.fromstring(code)
>>> doc.find('.//download-url').attrib['value']
'http://website.com/file.exe'
Со встроенным xml.dom.minidom :
>>> import xml.dom.minidom
>>> doc = xml.dom.minidom.parseString(code)
>>> doc.getElementsByTagName('download-url')[0].getAttribute('value')
u'http://website.com/file.exe'
Какой из них вы выберете, полностью зависит от вас.Необходимо установить lxml, но это самая быстрая и самая многофункциональная библиотека.xml.etree.ElementTree имеет необычный интерфейс, и его поддержка XPath ограничена (зависит от версии стандартной библиотеки python).xml.dom.minidom не поддерживает xpath и имеет тенденцию быть медленнее, но реализует кросс-платформенную DOM .