lxml - 如何获得元素的最小 xpath?
lxml - how to get minimal xpath of element?
tree.xpath("/exact/path/to/element")
产生 [<Element I want>]
.
exact/path/to/element
通过调用 tree.getroottree().getpath(element)
.
获得
如果我找到元素的最小 xpath,例如Firebug、tree.xpath("//@minimal-descriptor")
产生 [<Element I want>]
。
问题
如何使用 lxml 或其他 Python 库从 element
获取 minimal xpath?
不可能让 lxml 生成任何 xpath 表达式,除了 the "absolute" one 最重要的是因为可能有大量的 xpath 表达式指向一个元素。
这里还提出了几个重点:
据我对 firebug
documentation and the relevant "Split current option "Copy XPath" into two options for copying the absolute and relative XPath" issue 的了解,"Copy Minimal XPath" 功能仅适用于具有 id
属性集的元素:
Copy Minimal XPath - Node with ID - Copies the minimal version of an
XPath to the current node to the clipboard
tree.xpath("/exact/path/to/element")
产生 [<Element I want>]
.
exact/path/to/element
通过调用 tree.getroottree().getpath(element)
.
如果我找到元素的最小 xpath,例如Firebug、tree.xpath("//@minimal-descriptor")
产生 [<Element I want>]
。
问题
如何使用 lxml 或其他 Python 库从 element
获取 minimal xpath?
不可能让 lxml 生成任何 xpath 表达式,除了 the "absolute" one 最重要的是因为可能有大量的 xpath 表达式指向一个元素。
这里还提出了几个重点:
据我对 firebug
documentation and the relevant "Split current option "Copy XPath" into two options for copying the absolute and relative XPath" issue 的了解,"Copy Minimal XPath" 功能仅适用于具有 id
属性集的元素:
Copy Minimal XPath - Node with ID - Copies the minimal version of an XPath to the current node to the clipboard