>>> 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。