2013-05-02 38 views
1

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

我期待在HtmlUnit中找不到API中的任何东西。

目前,我想这样做以下方式:

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

这样,我将参观与XPath覆盖所有节点。随着一些更改,我可以删除那些不必要的突出显示的元素。

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

回答

1

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

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

+0

我想创建类似Firebug的东西,但不是Firefox插件。我想将它作为Web应用程序运行。 – 2013-05-02 12:30:15

+0

非常有趣 - 你能分享一段代码吗? – 2013-06-10 08:06:00

+0

嗯,这是很多代码,我不知道我是否可以轻松创建一个选择来显示它的内容。无论如何,最终JavaFX的WebEngine存在一些根本性缺陷(您无法同步加载网页以通过web引擎检索它们的dom),所以我选择在GWT中重新构建项目并直接在网页中工作。 一般: 1)RPC服务下载上的网页是在HTMLPanel加载服务器端 2)网页 3)DOMlisteners确保我们可以听改变元素的风格元素的 4的选择)容易做到 – CountZukula 2013-06-12 15:29:07