在Python中使用Xpath按属性选择祖先节点
我的XML在概念上是这样的结构:在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 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']