元素树python中带有属性的xpath表达式

问题描述 投票:0回答:1
import xml.etree.ElementTree as ET
tree: ET = ET.parse(file)
tree.find('.//ns1:tag/@someattribute', ns) 

导致{KeyError}'@',据我所知,xpath表达式是正确的,元素树中是否有任何方法可以直接使用xpath而不是使用.attrib

获取属性值
python xml xpath elementtree
1个回答
5
投票

XPath 表达式在语法上是正确的。问题是

find()
只能定位元素。它不能用于查找属性。

这应该有效:

attr = tree.find('.//ns1:tag', ns).get('someattribute')

使用 lxml,您可以使用

xpath()
方法(返回列表):

attr = tree.xpath('.//ns1:tag/@someattribute', namespaces=ns)[0]
© www.soinside.com 2019 - 2024. All rights reserved.