Python 中的 Xpath。获取语​​法错误("invalid predicate")

Xpath in Python . Getting SyntaxError("invalid predicate")

import xml.etree.ElementTree as ET
tree = ET.parse('test.xml')

xpathobjects = tree.findall(".//BuildingNodeBase[name = 'Building name']")

我想拉取一个 BuildingNodeBase,其子标签名称的值为 Building name

但是得到:

SyntaxError("invalid predicate")

The XPath support in ElementTree is limited,但支持您的表达式类型。只是您需要删除 =:

周围的多余空格
.//BuildingNodeBase[name='Building name']

我用的是lxml,但我想你可以采用这个来使用:

from lxml import etree

tree = etree.parse('test.xml')

xpathobjects = tree.xpath(".//BuildingNodeBase[@name = 'Building name']")