Python - ElementTree库 - 按属性值在树中搜索

2 投票
1 回答
1210 浏览
提问于 2025-04-17 05:42

我在这里安装了ElementTree库:http://effbot.org/zone/element.htm,使用的是Python 2.7。

我已经解析了一个XML文件:

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

现在出现的问题是,我在effbot ElementTree的文档中找不到相关的信息:

我该如何通过属性值来访问XML树中的一个节点呢?

类似于这样:

tree_a.getNode(my_attribute,my_attribute_value)

举个例子:

tree_a.getNode(cookie_diameter, 12)

这样查询就能返回XML树中,属性'cookie_diameter'值为12的节点。

有没有现成的函数可以用呢?

祝好

Daniyal

1 个回答

5

ElementTree 对 XPath 的支持有限。虽然它不能支持所有的功能,但一些更高级的功能还是可以用的。从 ElementTree 1.3 版本开始(这个版本在 Python 2.7 及以上和 Python 3.2 及以上中自带),你可以像这样查询属性值:

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

想要了解完整的 XPath 支持情况,可以查看 effbot.org 上的文档

撰写回答