2011-11-05 54 views
2

我已經在這裏安裝了ElementTree庫:http://effbot.org/zone/element.htm in python 2.7。Python - ElementTree Library - 通過屬性值樹搜索

我解析XML文件:

tree_a=parse('/home/user/cookies.xml') 

,現在出現,問題在哪裏coudln't提取effbot ElementTree中的文件的信息:

如何訪問一個來自XML樹的節點通過調用它的屬性值?

tree_a.getNode(my_attribute,my_attribute_value) 
在示例

tree_a.getNode(cookie_diameter, 12) 

使查詢將返回從XML樹的節點,有作爲 'cookie_diameter' 屬性值12

是否存在內置函數?

問候

丹尼亞爾

+1

@poke提到它。我想重複['ElementTree'](http://docs.python.org/library/xml.etree.elementtree.html)是自Python 2.5以來Python stdlib的一部分。 – jfs

回答

4

ElementTree中對XPath的有限支持。雖然它不支持一切,但一些更高級的東西可以工作。您可以查詢與ElementTree的屬性值1.3+(內置在Python 2.7+和Python 3.2+)是這樣的:

tree.find('.//*[@cookie_diameter="12"]') 

對於全XPath的支持見documentation on effbot.org

+1

優秀的答案。我看不到任何補充。 –