gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:13:04 25 4
gpt4 key购买 nike

我的 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>

现在,我想要的是选择所有名称为 lang="en"的员工,并将它们写入一个新的 XML 文件。

所以在这个例子中我只想要第一个员工:

<Employee>
<age>40</age>
<name lang="en">Tom</name>
<gender>Male</gender>
<role>Manager</role>
</Employee>

我尝试做类似的事情

//Employee[//name[@lang='en']]

(我故意在 name 之前使用//,因为 name 不必是 Employee 的直接子代)

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

最佳答案

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

//Employee[name/@lang='en']

XPath 返回 Employee 元素,其中相应的子 name 属性 lang 等于 "en"。或者,如果 name 可能不是 Employee 的直接子代,您可以使用以下表达式:

//Employee[.//name/@lang='en']

请注意 // 之前的 .,它表示谓词 ([]) 内的表达式是相对于当前 Employee 的 上下文。

关于python - 在Python中使用Xpath按属性选择祖先节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34653427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com