【问题标题】:Highlight nodes covered by XPath突出显示 XPath 覆盖的节点
【发布时间】:2013-04-26 14:30:37
【问题描述】:

我想在 HTML 页面源代码中突出显示给定 XPath 覆盖的节点。

我在 HtmlUnit 中查看,在 API 中找不到任何东西。

目前,我正在考虑以下方式:

  1. 获取 XPath 并获取页面源代码。
  2. 将 XPath 分解为更小的块并将它们存储在 Xpath_chunk[] 中。
  3. 从 Xpath_chunk[] 从 0 开始应用块。
  4. 更新每个块找到的每个节点的 css 属性(任何区分文本的更改)。
  5. 现在添加获取下一个块并将其与当前块连接。
  6. 转到步骤 3。

这样,我将访问Xpath覆盖的所有节点。通过更多更改,我可以删除那些不必要地突出显示的元素。

这太复杂了。有没有办法做到这一点 ?

【问题讨论】:

    标签: java xpath html-parsing htmlunit


    【解决方案1】:

    我最近使用 JavaFX 的 WebEngine + WebView 做了一个基本的实现。为已加载网站的 Document 的所有节点注册一个 DOM 监听器,以便您可以监听这些节点上的点击。单击时,更改节点的样式并添加一些 CSS。 WebView 将反映更改并正确呈现页面。

    WebEngine 返回的 Document 也可以使用 XPath 访问(它是一个 w3d 文档),因此您可以遍历它并修改您遇到的所有节点(或使用最下方的节点,然后使用 getParent( ),并同时修改每个父级)。

    【讨论】:

    • 我想创建类似 Firebug 的东西,但不是作为 Firefox 插件。我想将它作为 Web 应用程序运行。
    • 嗯,这是很多代码,我不知道我是否可以轻松创建一个显示它的内容的选择。无论如何,最终 JavaFX 的 WebEngine 有一些根本性的缺陷(你不能同步加载网页以使用 webengine 检索它们的 dom),所以我选择在 GWT 中重新制作项目并直接在网页中工作。通常:1) RPC 服务在服务器端下载网页 2) 该网页在 HTMLPanel 中加载 3) DOMlisteners 确保我们可以监听 Element 的选择 4) 更改元素的样式很容易
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多