XPath如何查询满足属性存在条件的父节点?

2024-06-06 21:07:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要查询一个节点,以确定它是否有包含指定属性的父节点。例如:

<a b="value">
    <b/>
</a>

从b作为焦点元素,我想执行一个XPath查询:

..[@b]

这将返回元素a。返回的元素必须a的父节点,并且不应包含a的任何同级节点。

etree库声明这是一个无效的XPath表达式。


Tags: 声明元素属性节点value表达式xpath焦点
2条回答

我不知道lxml.etree库,但是..[@b]是完全有效的XPath(更新:请参阅Ben Blank的注释)。与parent::a[@b]相同,它将在a元素处返回上下文。

不能将...缩写与谓词组合。相反,您需要使用完整的parent::轴。以下几点对你很有用:

parent::*[@b]

这将选择父节点(无论其本地名称如何),如果它具有“b”属性。

相关问题 更多 >