在Python中使用Xpath按属性选择祖先节点

在Python中使用Xpath按属性选择祖先节点,python,xml,xpath,Python,Xml,Xpath,我的XML在概念上是这样的结构: <?xml version="1.0" encoding="UTF-8"?> <Employees> <Employee> <age>40</age> <name lang="en">Tom</name> <gender>Male</gender> <role>Manager</role> <

我的XML在概念上是这样的结构:

<?xml version="1.0" encoding="UTF-8"?>
<Employees>
 <Employee>
    <age>40</age>
    <name lang="en">Tom</name>
    <gender>Male</gender>
    <role>Manager</role>
 </Employee>
 <Employee>
    <age>25</age>
    <name lang="fr">Meghna</name>
    <gender>Female</gender>
    <role>Manager</role>
 </Employee>
</Employees> 
(我故意在姓名前使用//,因为姓名不必是员工的直系子女)


我不知道如何将其写入文件,而且由于某种原因,我的查询不会返回任何内容

根据发布的XML,您应该能够使用以下XPath表达式:

//Employee[name/@lang='en']
XPath返回
Employee
元素,其中对应的子
name
具有属性
lang
等于
“en”
。或者,如果
name
可能不是
Employee
的直接子级,则可以使用以下表达式:

//Employee[.//name/@lang='en']
请注意
/
之前的
,它表示谓词(
[]
)中的表达式与当前
员工
上下文相关。

@beni如果解决了问题,请不要忘记答案
//Employee[name/@lang='en']
//Employee[.//name/@lang='en']