【问题标题】:lxml - how to get minimal xpath of element?lxml - 如何获得元素的最小xpath?
【发布时间】:2015-04-05 23:42:56
【问题描述】:

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?

【问题讨论】:

    标签: python xpath xml-parsing html-parsing lxml


    【解决方案1】:

    不可能让 lxml 生成除 the "absolute" one 之外的任何 xpath 表达式,最重要的是因为可能存在大量指向元素的 xpath 表达式。

    这里还提出了几个重点:


    据我从firebug documentation 和相关的"Split current option "Copy XPath" into two options for copying the absolute and relative XPath" issue 了解到,“复制最小XPath”功能仅适用于具有id 属性集的元素:

    复制最小 XPath - 具有 ID 的节点 - 复制最小版本的 XPath 到剪贴板的当前节点

    【讨论】:

    • 那萤火虫怎么样了?
    • @WalrustheCat 首先,我们还是专门讨论lxml,对吧? :) 我更新了答案,添加了一些关于firebug 的注释。谢谢。
    • 谢谢。我们仍在谈论 lxml,我不喜欢修改它。我以为你是说这项任务根本不可能。如果还有其他 python API 可以做到这一点,我愿意听听。我会更新我的问题以反映这一点。
    猜你喜欢
    • 2017-05-14
    • 2016-02-11
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多