Python - ElementTree Library - 按属性值搜索树

时间:2011-11-05 15:39:29

标签: python xml parsing elementtree

我从这里安装了ElementTree库:http://effbot.org/zone/element.htm 在python 2.7中。

我已在xml文件中解析:

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

现在出现的问题,以及我没有从effbot ElementTree的文档中提取信息的地方:

如何通过其属性值来调用xml-tree中的节点?

类似

tree_a.getNode(my_attribute,my_attribute_value)

在一个例子中:

tree_a.getNode(cookie_diameter, 12)

以便查询将从xml-tree返回节点,该节点具有'cookie_diameter'属性值12

是否存在内置函数?

祝你好运

丹尼亚尔

1 个答案:

答案 0 :(得分:4)

ElementTree对XPath的支持有限。虽然它不支持所有东西,但是一些更高级的东西可以工作。您可以使用ElementTree 1.3+(内置在Python 2.7+和Python 3.2+中)查询属性值,如下所示:

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

有关完整的XPath支持,请参阅documentation on effbot.org