2024-06-06 21:07:04 发布
网友
我需要查询一个节点,以确定它是否有包含指定属性的父节点。例如:
<a b="value"> <b/> </a>
从b作为焦点元素,我想执行一个XPath查询:
..[@b]
这将返回元素a。返回的元素必须是a的父节点,并且不应包含a的任何同级节点。
etree库声明这是一个无效的XPath表达式。
我不知道lxml.etree库,但是..[@b]是完全有效的XPath(更新:请参阅Ben Blank的注释)。与parent::a[@b]相同,它将在a元素处返回上下文。
parent::a[@b]
a
不能将.或..缩写与谓词组合。相反,您需要使用完整的parent::轴。以下几点对你很有用:
.
..
parent::
parent::*[@b]
这将选择父节点(无论其本地名称如何),如果它具有“b”属性。
我不知道lxml.etree库,但是
..[@b]
是完全有效的XPath(更新:请参阅Ben Blank的注释)。与parent::a[@b]
相同,它将在a
元素处返回上下文。不能将
.
或..
缩写与谓词组合。相反,您需要使用完整的parent::
轴。以下几点对你很有用:这将选择父节点(无论其本地名称如何),如果它具有“b”属性。
相关问题 更多 >
编程相关推荐