Python ElementTree XPath 属性的多个条件

Python ElementTree XPath multiple conditions for attributes

我正尝试通过以下规则从我的 XML select 个节点:

名为“tag”的节点的父节点,具有属性 k='k1' 和(v='v1' 或 v='v2')

如何使用 python 和 ElementTree 实现它?我尝试了以下代码,但出现错误“SyntaxError: invalid predicate”

roads = root.findall(".//tag[@k='k1'][@v='v1' or @v='v2']/..")
roads = root.findall(".//tag[@k='k1' and (@v='v1' or @v='v2')]/..")

更新

XML样本

<parent>
  <tag k="k1" v="v1"/>
  <tag k="k1" v="v2"/>
  <tag k="k1" v="v3"/>
 </parent>

ET xpath 支持非常有限。但是这个 hack 应该有效

roads = root.findall(".//tag[@k='k1']/..") or root.findall(".//tag[@k='k2']/..")